ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Использование файла конфигурации SSH

Если вы регулярно подключаетесь к нескольким удаленным системам по SSH на ежедневной основе, вы обнаружите, что запоминание всех удаленных IP-адресов, различных имен пользователей, нестандартных портов и различных параметров командной строки является трудным, если не невозможным.

Одним из вариантов будет создать псевдоним Bash для каждого соединения с удаленным сервером. Однако есть и другое, гораздо лучшее и более простое решение этой проблемы. OpenSSH позволяет Вам настроить файл конфигурации для каждого пользователя, где вы можете хранить различные варианты SSH для каждой удаленной машины, к которой вы подключаетесь.

Эта статья описывает основы файла конфигурации клиента SSH и объясняет некоторые из наиболее распространенных параметров конфигурации.

 

Необходимые компоненты

Мы предполагаем, что Вы используете систему Linux или macOS с установленным клиентом OpenSSH.

 

Расположение файла конфигурации SSH

OpenSSH в клиентский файл конфигурации имеет имя config и хранится в каталоге .ssh в разделе Домашний каталог пользователя. Этот каталог ~/.ssh создается автоматически, когда пользователь запускает SSH команду впервые.

Если вы никогда не использовали ssh команду, то сначала нужно создать каталог, используя:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

 

По умолчанию конфигурационный файл ssh может не существовать, поэтому вам может понадобиться, чтобы создать его с помощью команды Touch:

touch ~/.ssh/config && chmod 600 ~/.ssh/config

 

 

Этот файл должен быть доступен для чтения и записи только пользователю, а не другим пользователям:

chmod 700 ~/.ssh/config

 

Структура и шаблоны файлов конфигурации SSH

Конфигурационный файл SSH имеет следующую структуру:

Host hostname1
    SSH_OPTION value
    SSH_OPTION value

Host hostname2
    SSH_OPTION value

Host *
    SSH_OPTION value

 

Содержимое файла конфигурации клиента SSH организовано в строфы (разделы). Каждая строфа начинается с директивы Host и содержать конкретные параметры SSH, которые используются при установлении соединения с удаленным сервером SSH.

Отступ не требуется, но рекомендуется, так как это сделает файл легче читать.

Эти директивы Host могут содержать один рисунок или разделенный пробелами список моделей. Каждый шаблон может содержать ноль или более символов без пробелов или один из следующих описателей шаблона:

SSH-клиент считывает файл конфигурации по строфам, и если несколько шаблонов совпадают, параметры из первой соответствующей строфы имеют приоритет. Таким образом, в начале файла должны быть заданы дополнительные объявления, а в конце файла – более общие переопределения.

Вы можете найти полный список доступных SSH параметров, введите man ssh_config в терминале или посетив ssh_config man page.

Файл конфигурации SSH также читается другими программами, такими как scpsftp и rsync.

 

Пример базового файла конфигурации SSH

Теперь, когда мы рассмотрели основы файла конфигурации SSH, давайте рассмотрим следующий пример.

Обычно, когда вы подключаетесь к удаленному серверу через SSH, вы указываете имя удаленного пользователя, имя хоста и сообщение. Например, чтобы подключиться от имени пользователя andreyex к хосту, вызываемому через dev.example.com порт 2322 из командной строки, введите:

ssh andreyex@dev.example.com -p 2322

 

Если вы хотите подключиться к серверу, используя те же параметры, что и в приведенной выше команде, просто набрав named, ssh dev вам нужно добавить в файл "~/.ssh/config следующие строки:

~ / .ssh / конфигурации
Host dev
    HostName dev.example.com
    User andreyex
    Port 2322

 

Теперь, если вы введете:

ssh dev

 

Клиент ssh прочитает файл конфигурации и будет использовать сведения о соединении, указанные для хоста dev.

 

Пример общего файла конфигурации SSH

Этот пример дает более подробную информацию о шаблонах хостов и приоритетах опций.

Давайте возьмем следующий пример файла:

Host alex
    HostName 192.168.1.10
    User andreyex
    Port 7654
    IdentityFile ~/.ssh/alex.key

Host maxim
    HostName 192.168.10.20

Host denis
    HostName 192.168.10.50

Host *im
    user destroyer

Host * !denis
    LogLevel INFO

Host *
    User root
    Compression yes

 

Переопределить опцию файла конфигурации SSH

Клиент ssh получает свою конфигурацию в следующем порядке приоритета:

  1. Параметры, указанные в командной строке
  2. Параметры, определенные в ~/.ssh/config
  3. Параметры, определенные в /etc/ssh/ssh_config

Если вы хотите переопределить один параметр, вы можете указать его в командной строке. Например, если у вас есть следующее определение:

Host dev
    HostName dev.example.com
    User andreyex
    Port 2322

 

и вы хотите использовать все остальные параметры, кроме как для подключения в качестве пользователя, root а не andreyex просто указать пользователя в командной строке:

ssh -o "User=root" dev

 

Переключатель -Fconfigfile) позволяет указать альтернативный файл конфигурации для каждого пользователя.

Если вы хотите, чтобы ваш ssh-клиент игнорировал все параметры, указанные в вашем конфигурационном файле ssh, вы можете использовать:

ssh -F /dev/null user@example.com

Заключение

Вы узнали, как настроить пользовательский конфигурационный файл ssh. Вы также можете настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.

Exit mobile version