Если вы даже немного знакомы с SSH, вы знаете, что можете использовать его для подключения к удаленным системам Linux.
Использовать SSH для подключения к удаленной системе очень просто. Все, что вам нужно сделать, это использовать такую команду:
ssh user@server_IP
Эта команда подключается к стандартному SSH-порту 22. Вы также можете указать порт, если хотите.
Теперь все просто и понятно, если у вас только один сервер. Даже если вы не помните IP-адрес сервера, вы можете выполнить обратный поиск в истории с помощью известного сочетания клавиш терминала Ctrl + R и найти команду SSH, которую вы использовали в прошлом.
Но все становится сложнее, когда у вас есть несколько серверов для управления. допустим у вас есть около десяти серверов, к которым вы время от времени подключаюсь. Некоторые из них являются производственными серверами, а некоторые – тестовыми.
Теперь отслеживать эти серверы нелегко. Даже если вы сможете найти команды SSH из истории, трудно угадать, какой IP принадлежит какому серверу.
Конечно, мы можем через панели получить IP-адрес или сохранить список в моей локальной системе.
Лучше и проще использовать конфигурационный файл SSH.
Использование файла конфигурации SSH для простого подключения к удаленным серверам
Файл конфигурации SSH позволяет создавать разные профили для разных конфигураций хоста. Для таких профилей нет ограничений, и вы можете добавить их сколько хотите.
Таким образом, если вы подключаетесь к нескольким удаленным системам через SSH, создание профилей SSH будет хорошим шагом для экономии вашего времени.
Позвольте нам показать вам, как его использовать.
Шаг 1: Создайте файл конфигурации SSH
При установке SSH у вас будет автоматически создан каталог ~/.ssh. Он будет содержать ваш открытый ключ, личный ключ и файл known_hosts. Ваша конфигурация также хранится здесь.
По крайней мере в Ubuntu файл конфигурации SSH не создается по умолчанию. Вы можете легко создать этот файл, используя команду touch следующим образом:
touch ~/.ssh/config
Шаг 2: Добавьте профиль SSH в файл конфигурации
Теперь, когда у вас есть файл конфигурации SSH, вы можете редактировать его с помощью Vim или Nano. Позвольте нам показать вам пример синтаксиса, которому вы должны следовать.
Допустим, вы подключаетесь к серверу с IP 213.159.210.151. Ваше имя пользователя -andreyex, а сервер используется для размещения вашего сайта. Чтобы повысить безопасность SSH, вы используете порт 1500 вместо стандартного порта SSH 22.
Вы можете добавить всю эту информацию следующим образом в ваш файл ~/.ssh/config:
Host website Hostname 213.159.210.151 User andreyex Port 1500
Просто сохраните информацию в файле. Нет необходимости перезапускать какой-либо сервис.
Теперь, вместо того, чтобы писать длинную команду вроде этого:
ssh andreyex@213.159.210.151 -p 1500
Вы можете просто использовать эту команду (также работает завершение табуляции):
ssh website
Когда вы запускаете указанную выше команду, ssh ищет хост с именем website в ~/.ssh/config. Если он находит хост с таким именем, он получает всю информацию и использует его для установления SSH-соединения.
Вы можете спросить о нескольких вещах, поэтому мы упомянем это здесь:
- При вводе информации о хосте нет никаких ограничений на отступы пробела или табуляции. Отступы пробела или табуляции используются для облегчения понимания файла конфигурации.
- Имя хоста может быть IP-адресом сервера или именем хоста, которое может быть разрешено в вашей сети.
- Все параметры, такие как имя хоста, пользователь и порт не являются обязательными. Однако мы лично советуем сохранить хотя бы имя хоста, потому что это то, что вам нужно (и вы забываете) большую часть времени.
- Если ваш конфигурационный файл SSH настроен неправильно, это приведет к ошибке при попытке использовать его для подключения SSH.
- Вы не можете сохранить пароли в конфигурации SSH. Мы советуем добавить ваш публичный ключ SSH на сервер для легкого доступа.
Шаг 3: Добавление нескольких профилей в конфигурационный файл SSH
Предыдущий шаг дал вам представление о том, как добавить профиль SSH. Давайте перейдем к следующему шагу, добавив в него несколько профилей.
Вот как выглядит файл конфигурации SSH:
Host website Hostname 213.159.210.151 User andreyex Port 1500 Host forum-server Hostname 275.128.172.47 User andreyex Host main-server Hostname 275.128.172.49 Host common-test-server Hostname test-server Host * User root
На этот раз мы добавили четыре различных профиля SSH.
Вы заметили запись Host * в конце файла? Вы можете использовать эту запись для добавления параметра, общего для всех профилей, если этот параметр явно не был упомянут для профиля.
Поэтому, если мы попытаемся использовать профиль SSH основного сервера, он автоматически получит root-пользователя.
ssh main-server = ssh root@275.128.172.49
Порядок настройки SSH
Конфигурация ssh имеет следующий порядок:
- Параметры командной строки
- Файл конфигурации пользователя (~/.ssh/config)
- Общесистемный файл конфигурации (/etc/ssh/ssh_config)
Это означает, что первый приоритет отдается введенной вами команде, а затем она просматривается в ~/.ssh/config, а затем в/etc/ssh/ssh_config.
Итак, если вы хотите переопределить профиль, вы можете сделать это, используя опцию -o в команде ssh.
Например, если мы используем эту команду:
ssh -o "User=destroyer" website
Это займет пользователя destroyer вместо пользователя andreyex, как определено в ~/.ssh/config (на предыдущем шаге).
Конфигурация SSH намного больше
Честно говоря, в конфигурационном файле SSH есть еще много чего, что не может быть рассмотрено в одной статье. Вы можете использовать имя/IP соответствия, подсети.
Целью этой статьи было познакомить вас с конфигурацией SSH и помочь вам создать профили SSH для простого подключения к различным удаленным системам Linux.
Вы всегда можете обратиться к man-странице ssh_config, чтобы узнать больше о параметрах, которые вы можете использовать при создании вашего конфигурационного файла SSH.
Мы надеемся, что этот совет SSH был полезен для вас. Если вы уже используете конфигурационный файл SSH и у вас есть полезный совет, поделитесь им с остальными в разделе комментариев.