Secure Shell (SSH) – один из наиболее часто используемых и защищенных способов подключения к удаленному серверу.
Подключиться к удаленному серверу с помощью SSH легко, но что если вы хотите подключаться к разным серверам и делаете это часто.
Становится трудно запоминать все IP-адреса, имена пользователей, команды и пароли.
Чтобы решить эту проблему, SSH позволяет настраивать и использовать конфигурационный файл ssh для различных случаев использования.
SSH использует системный и пользовательский или специфический для пользователя конфигурационный файл.
Вы можете настраивать и конфигурировать параметры соединения на стороне клиента и хранить информацию о каждом удаленном сервере, с которым вы соединяетесь.
В сегодняшней статье мы расскажем, как использовать конфигурационный файл ssh, и объясним некоторые общие параметры конфигурации.
С помощью файла конфигурации SSH вы можете определять и хранить настройки для конкретных удаленных машин.
Это избавляет от необходимости отслеживать каждую информацию, такую как пароль, имя пользователя, IP-адрес и т.д., необходимую для соединения с удаленным сервером.
Где находится файл конфигурации SSH
Итак, как мы уже говорили, в SSH доступны два типа конфигурационных файлов – общесистемные и пользовательские (Custom).
И их расположение следующее:
- Общесистемный конфигурационный файл: Этот файл в основном содержит информацию по умолчанию, которая применяется ко всем пользователям системы, и вы можете найти его по адресу /etc/ssh/ssh_config.
- Конфигурационный файл для конкретного пользователя или пользовательский конфигурационный файл: Этот файл конфигурации специфичен для конкретного пользователя, и в этой статье мы сосредоточимся на этом файле.
Каждый пользователь может поддерживать пользовательский или клиентский файл конфигурации SSH, и он может хранить некоторую общую информацию, которая используется при создании соединения. Этот файл остается в формате чтения и записи для пользователя, и другие не могут получить к нему доступ.
Клиентский или пользовательский файл конфигурации хранится в домашнем каталоге пользователя в директории ~/.ssh.
Вы найдете его здесь – ~/.ssh/config или $HOME/.ssh/config
По умолчанию конфигурационный файл для конкретного пользователя не существует.
Поэтому вы можете создать его с помощью этой команды:
touch ~/.ssh/config
Также, если вы не нашли каталог ~/.ssh, вы можете создать его с помощью этой команды:
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
Понимание структуры конфига SSH
Файл специфичен для каждого хоста и содержит информацию, связанную с соединением с сервером.
Каждый раздел начинается с определения заголовка для хоста, за которым следует информация и значения, которые должны быть подобраны для соединений.
Формат файла будет выглядеть следующим образом:
Host Host1 ssh_option1 Value Custom Value ssh_option2 Value Custom Value ssh_option3 Value Custom Value Host Host2 ssh_value Value Custom Value Host * Ssh_option Value Custom Value
Как работает конфигурационный файл SSH
Обычно, если вы хотите подключиться к удаленному серверу, вы используете эту команду:
ssh -i ~/.ssh/id_rsa -p 22 hostname@IPaddress
Запомнить имя хоста и IP-адрес всех серверов, к которым вы подключаетесь, – задача не из легких.
Поэтому с помощью конфигурационного файла вы можете подключаться с помощью одной команды.
ssh hostname
SSH будет использовать информацию из конфигурационного файла для подключения к удаленному серверу.
Итак, давайте разберемся, как работает конфигурационный файл.
Например, если вы выполните следующую команду:
ssh Host1
SSH сначала сопоставит имя хоста с каждым хостом, упомянутым в конфигурационном файле, по принципу “сверху вниз” и найдет заголовок Host1.
Как только SSH найдет соответствие для Host1, он проверит и другие хосты, если есть другие похожие совпадения.
Если других совпадений нет, SSH будет интерпретировать значения опций, упомянутых в Host1, для соединения с сервером.
Использование конфигурационного файла SSH
Теперь мы знаем, что такое конфиг SSH и как он работает.
Теперь давайте разберемся, как его можно использовать для упрощения среды удаленного подключения.
Откройте файл конфигурации в редакторе.
vi ~/.ssh/config
В нем можно задать имя пользователя, IP-адрес и значение порта.
Например:
Host Itsecforu HostName 192.167.54.19 Port 2222 Forwardx11 no Host * User itsecforu IdentityFile ~/.ssh/id_rsa Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel Info
Объяснение значений, используемых в файле:
- HostName: IP-адрес узла удаленного сервера, в который вы хотите войти.
- User: Имя пользователя, под которым вы будете входить в систему.
- Port: Порт, к которому вы хотите подключиться на удаленном сервере.
- Protocol: Версия протокола SSH, которую следует предпочесть. Вы можете ввести несколько значений, разделенных запятой.
- IdentityFile: Расположение файла, содержащего идентификаторы RSA, ECDSA и DSA аутентификации пользователя.
- ForwardX11: Позволяет пробросит иксы удаленного сервера на вашей машине.
- Compression Вы хотите использовать сжатие во время соединения с удаленным сервером или нет. Включение этого параметра может быть полезным для вас, если у вас медленное соединение.
- ServerAliveinterval: Используется для установки таймера в секундах для соединения с сервером, и в течение заданного времени, если ответ от сервера не получен, ssh отправит сообщение с запросом ответа.
- ServerAliveCountMax: Устанавливает количество сообщений, которые должны быть отправлены для запроса ответа от сервера.
- LogLevel: Указывает уровень логов, используемый при ведении журнала.
Заключение
Теперь вы знаете, как один файл конфигурации может быть полезен, если вы часто подключаетесь к удаленным серверам.
Вам не нужно запоминать множество имен хостов, ip-адресов и портов.
см. также:
🛡️ Как обезопасить и защитить сервер OpenSSH
Как защитить ssh в CentOS / RHEL / Fedora
🖧 Как включить переадресацию портов SSH на Linux
🔥 Как настроить SSH ловушку на Ubuntu сервере