Android

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

Время и Стекло Так выпала Карта HD VKlipe Net

Время и Стекло Так выпала Карта HD VKlipe Net

Оглавление:

Anonim

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

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

Предпосылки

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

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

Файл конфигурации OpenSSH на стороне клиента называется config и хранится в каталоге .ssh в домашнем каталоге пользователя.

Каталог ~/.ssh создается автоматически, когда пользователь запускает команду ssh в первый раз. Если каталог не существует в вашей системе, создайте его с помощью команды ниже:

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

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

touch ~/.ssh/config

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

chmod 600 ~/.ssh/config

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

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

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

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

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

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

  • * - соответствует нулю или более символов. Например, Host * соответствует всем хостам, а 192.168.0.* Соответствует хостам в подсети 192.168.0.0/24 . ? - соответствует ровно одному персонажу. Шаблон, Host 10.10.0.? соответствует всем хостам в 10.10.0. ассортимент. ! - При использовании в начале паттерна он отменяет совпадение. Например, Host 10.10.0.* !10.10.0.5 соответствует любому хосту в подсети 10.10.0.5 кроме 10.10.0.5 .

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

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

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

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

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

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

ssh [email protected] -p 2322

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

~ /.Ssh / конфигурации

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

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

ssh dev

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

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

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

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Когда вы ssh targaryen , клиент ssh читает файл и применяет параметры из первого совпадения, а именно Host targaryen . Затем он проверяет следующие строфы один за другим на соответствие шаблону. Следующий соответствующий - Host * !martell (имеется в виду все хосты, кроме martell ), и он будет применять опцию подключения из этого раздела. Последнее определение Host * также совпадает, но клиент ssh будет использовать только параметр Compression поскольку параметр User уже определен в разделе Host targaryen .

    Полный список параметров, используемых при ssh targaryen выглядит следующим образом:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    При запуске ssh tyrell соответствующие шаблоны Host tyrell : Host tyrell , Host *ell , Host * !martell и Host * . Варианты, используемые в этом случае:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Для всех остальных соединений клиент ssh будет использовать параметры, указанные в разделах Host * !martell и Host * .

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

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

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

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

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

ssh -o "User=root" dev

Опция -F ( configfile ) позволяет вам указать альтернативный файл конфигурации для каждого пользователя.

Чтобы указать клиенту ssh игнорировать все параметры, указанные в файле конфигурации ssh, используйте:

ssh -F /dev/null [email protected]

Вывод

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

По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашему серверу, снижая риск автоматических атак.

терминал ssh