Поиск по сайту:

Как сделать 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 еще проще.

Статьи по данной тематике