Как сделать SSH еще проще в использовании с файлами конфигурации
Если вы используете Secure Shell для входа на удаленные серверы Linux в течение дня, вам следует рассмотреть возможность использования файла конфигурации, чтобы облегчить себе жизнь. Вот как.
Secure Shell (SSH) — один из тех инструментов, с которым, вероятно, в какой-то момент будет работать каждый пользователь Linux. С помощью SSH вы можете легко (и безопасно) входить на удаленные серверы и рабочие столы для администрирования, разработки и проверки на этих машинах.
Использовать SSH так же просто, как:
ssh jack@192.168.1.11
Или даже просто:
ssh 192.168.1.11
Конечно, вы бы заменили IP-адрес на адрес (или домен) машины, к которой вам нужен доступ.
SSH становится немного менее простым, если у вас есть множество компьютеров, к которым вы обращаетесь с разными конфигурациями (например, с разными именами пользователей или ключами аутентификации SSH). Представьте себе, что у вас было около 20 разных серверов, на которые вам приходилось заходить ежедневно. Вам придется не только отслеживать IP-адреса или домены этих серверов, но также помнить, какие имена пользователей или ключи аутентификации использовались. Одно только это могло стать довольно ошеломляющим.
К счастью, SSH позволяет вам создать файл конфигурации для хранения всей этой информации. Таким образом, вместо того, чтобы вводить что-то вроде ssh olivia@192.168.1.100 -p 2222, вы можете просто ввести ssh web1.
Позвольте мне показать вам, как это делается.
Как создать файл конфигурации SSH
Что вам понадобится:Все, что вам для этого понадобится, — это настольный компьютер с установленным OpenSSH и 1 или несколько серверов, поддерживающих SSH-соединения.
1. Создайте файл конфигурации.
Войдите на компьютер с Linux, который вы используете, для подключения по SSH ко всем этим удаленным машинам. Откройте окно терминала и создайте новый файл конфигурации с помощью команды, показанной на рисунке.
Создание нового файла конфигурации SSH с помощью nano.
Поскольку это новый файл, это будет пустой холст, к которому мы можем начать добавлять конфигурации для серверов. Допустим, вы хотите настроить следующие удаленные серверы:
web1 по адресу 192.168.1.100 с пользователем Оливия
-
db1 по адресу 192.168.1.101 с пользователем nathan и ключом SSH ~/.ssh/id_nathan
docker1 по адресу 192.168.1.102 с пользователем lilly на порту 2222
Наша первая запись будет выглядеть так:
Host "web1"
Hostname "192.168.1.100"
User olivia
Если вы сохраните и закроете файл на этом этапе, вы сможете подключиться по SSH к 192.168.1.100 с помощью команды:
ssh web1
2. Настройте больше записей
Давайте продолжим и настроим следующие две записи, которые будут выглядеть следующим образом:
Host db1
Hostname "192.168.1.101"
User nathan
IdentityFile ~/.ssh/id_nathan
PubkeyAuthentication yes
Host docker1
Hostname "192.168.1.102"
User lilly
Port 2222
Сохраните и закройте файл. Теперь вы можете защитить оболочку на этих машинах с помощью команд:
ssh web1
ssh db1
ssh docker1
Вы можете использовать любой псевдоним для каждого хоста, просто сделайте его запоминающимся, чтобы вы не забывали, к какой машине вы пытаетесь подключиться, и вам приходилось постоянно ссылаться на файл конфигурации, чтобы раздражать вашу память.
3. Настройте конкретное имя пользователя.
Предположим, однако, что вы используете одно и то же имя пользователя на всех своих удаленных серверах, но используете другое имя пользователя на своем локальном компьютере. Например, имя пользователя вашего локального компьютера может быть jack, но вы создали пользователя-администратора на всех ваших удаленных серверах. Вы можете создать одну запись для всех этих серверов с подстановочным знаком в IP-адресе, например:
Host 192.168.1.*
User admin
Вышеупомянутая конфигурация будет размещена в верхней части вашего файла конфигурации.
4. Настройте отдельные записи для аутентификации по ключу SSH.
Затем вы можете настроить каждый сервер индивидуально по мере необходимости, исключив опцию «Пользователь». Например, если оба сервера 192.168.1.200 и 192.168.1.201 используют аутентификацию по ключу SSH, вы можете настроить записи следующим образом:
Host web2
Hostname 192.168.1.200
IdentityFile ~/.ssh/id_admin
PubkeyAuthentication yes
Host web3
Hostname 192.168.1.201
IdentityFile ~/.ssh/id_admin
PubkeyAuthentication yes
Поскольку мы применили администратора пользователя ко всему диапазону компьютеров в схеме IP-адресов 192.168.1.x, это имя пользователя будет применяться ко всем подключениям. Вы также можете переопределить эту глобальную конфигурацию, добавляя строку конфигурации пользователя по мере необходимости.
Файл конфигурации SSH допускает несколько других параметров (все из которых можно прочитать в официальной документации по конфигурации SSH), но приведенные выше примеры должны быть всем, что вам нужно для работы с файлом конфигурации SSH.
И это все, что нужно для использования файла конфигурации SSH, чтобы сделать удаленный доступ с помощью Secure Shell еще проще.