Когда пользователю необходимо часто обращаться к удаленным серверам с использованием протокола SSH, тогда пользователю потребуется запомнить IP-адреса, имена пользователей, различные номера портов и параметры командной строки. Но это не эффективный способ решения задач. Эту проблему можно решить несколькими способами. Пользователь может создать команду псевдонима bash для удаленного подключения, которую легче запомнить. Другое решение – создать файл конфигурации SSH для каждого пользователя, чтобы сохранить различные параметры SSH для разных удаленных систем. Использование файлов конфигурации SSH для регулярного доступа к удаленным серверам показано в этом руководстве.
Предпосылки
Перед тем, как приступить к действиям этой статьи, необходимо выполнить следующие действия.
Включите службу SSH в Ubuntu, если она не была включена ранее.
Сгенерируйте пары ключей SSH для выполнения команд на удаленном сервере. Выполните следующую команду, чтобы создать открытый и закрытый ключи. Закрытый ключ будет храниться на удаленном сервере, а открытые ключи будут надежно храниться на клиенте.
$ ssh-keygen -t rsa
Выполните следующую команду, чтобы открыть файл sshd_config с помощью редактора nano и добавить некоторые необходимые конфигурации.
$ sudo nano /etc/ssh/sshd_config
Добавьте в файл следующие строки, чтобы включить учетную запись root и аутентификацию на основе пароля.
PasswordAuthentication yes PermitRootLogin yes
Выполните следующую команду, чтобы перезапустить службу SSH.
$ sudo service ssh restart
Общие параметры конфигурации SSH
В файле конфигурации клиентского компьютера можно установить разные параметры конфигурации для разных целей. Некоторые полезные параметры описаны в следующей таблице.
Вариант | Цель |
---|---|
HostName | Он используется для определения имени хоста или IP-адреса вашего удаленного сервера. Если идентификатор хоста определяет исходное имя хоста, его не требуется устанавливать. |
User | Он используется для установки имени пользователя удаленного сервера. |
Port | Он используется для определения номера порта, который используется для прослушивания соединения с сервером. Номер порта по умолчанию – 22. |
Compression | Сжатие будет использоваться, если установлено значение «Yes». Значение этого параметра по умолчанию – нет. |
ForwardX11 | Он используется для автоматического перенаправления соединения X11 через защищенный канал и набор DISPLAY. Значение этой опции может быть да или нет. Значение по умолчанию – нет. |
IdentityFile | Он используется для указания пути открытого ключа, который клиент SSH будет использовать для аутентификации. |
LogLevel | Используется для определения уровня детализации, который используется при регистрации сообщений от ssh. Значения этой опции могут быть QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 и DEBUG3. Значение по умолчанию – INFO. |
ServerAliveCountMax | Он используется для установки количества активных сообщений сервера. |
ServerAliveInterval | Он используется для установки интервала тайм-аута в секундах, по истечении которого не было получено ответа от сервера. Значение по умолчанию для этой опции – 0, что означает, что сообщение не будет отправлено на сервер. |
Файлы конфигурации клиента SSH
Вы можете использовать клиентский файл конфигурации по умолчанию для установки значений конфигурации, а путь к файлу – /etc/ssh/ssh_config. Он содержит настройки, которые применимы для всех пользователей клиента SSH. Но если вы хотите применить настройку для конкретного пользователя, лучше использовать настраиваемый файл конфигурации, применимый к этому пользователю. Как использовать настраиваемый файл конфигурации на стороне клиента было показано в следующей части этой статьи.
Создание файла конфигурации SSH для конкретного пользователя
Создайте папку с именем .ssh внутри домашнего каталога пользователя-клиента и создайте файл конфигурации с именем config со следующим содержимым внутри этой папки. Здесь были определены три типа хостов. Первый хост – это «andreyex», а имя хоста – «destr». Он будет подключаться к серверу SSH, используя порт по умолчанию, 22. Второй хост – «andreyex.ru», а имя хоста – это IP-адрес. Для параметра ForwardX11 установлено значение «Yes» для второго хоста, что означает, что он будет автоматически перенаправлять соединение X11 по защищенному каналу. Параметры третьего хоста определены для всех хостов. Значение IP-адреса s, параметры port number, IndentityFile, compression, ServerAliveInterval, и ServerAliveCountMax были определены в третьем хосте. Параметр IdentifyFile определил расположение открытого ключа. Параметр сжатия был определен для сжатия данных. Параметры ServerAliveInterval и ServerAliveCountMax были определены для увеличения времени соединения SSH.
Host andreyex HostName destr Host andreyex.ru HostName 10.0.2.15 ForwardX11 yes Host * User Ubuntu HostName 10.0.2.15 Port 22 IdentityFile ~/.ssh/id_rsa Compression yes ServerAliveInterval 60 ServerAliveCountMax 20
Запустите команду SSH для разных хостов
Выполните следующую команду ssh, чтобы подключиться к хосту andreyex и имени хоста destr. Здесь параметр -i использовался с командой ssh, чтобы указать путь к открытому ключу.
$ ssh -i ~/.ssh/id_rsa andreyex@andreyex
Следующий вывод появится, если SSH-соединение с сервером установлено правильно.
Выполните следующую команду ssh, чтобы подключиться к хосту, andreyex и IP-адресу. Здесь параметр -i использовался с командой ssh для указания пути к открытому ключу, а параметр -p использовался для определения номера порта.
$ ssh -i ~/.ssh/id_rsa -p 22 andreyex@10.0.2.15
Следующий вывод появится, если SSH-соединение с сервером установлено правильно.
Выполните следующую команду ssh без какой-либо опции для подключения к хосту, andreyex, и имени хоста, andreyex.ru.
$ ssh andreyex@andreyex.ru
Следующий вывод появится, если SSH-соединение с сервером установлено правильно.
Заключение
В этой статьи показано использование настраиваемого файла конфигурации SSH для установления SSH-соединения с сервером с использованием локального хоста двух учетных записей. Вы можете выполнить тот же процесс, чтобы установить SSH-соединение с хостом удаленной сети.