Использование файла конфигураций .ssh/config для подключения к серверам по SSH

С серверами по SSH я работаю уже более 15 лет, на текущий момент я подключаюсь к более чем 40-ка серверам, к некоторым несколько раз в день, к некоторым раз в несколько месяцев…

 В целях безопасности практически на всех из них SSH передвинут на другой порт. Также за одним внешним адресом часто прячутся много серверов и соответственно они все не могут быть доступны по одному 22-ому порту. Ну и дополнительно при подключении может понадобится прокидывать ещё какие-нибудь порты или целиком делать SOCKS-прокси.

Чтобы не хранить в голове все адреса, порты, параметры прокидываемых портов я сделал себе отдельную директорию в домашней папке с именем Servers, в которой создавал sh-файлы для запуска серверов с нужными параметрами. Например вот такого содержания:

#!/bin/sh
ssh -p 2222 -L 88:server.worgroup:80 -D 7777 myserver.example.com

Не самый удобный способ подключения к серверам из UNUX-подобных операционных систем, но ничего иного я не придумал.

На Windows есть putty, где можно прописать конфигурации подключаемых серверов, но при большом их количестве искать нужную конфигурацию также неудобно.

Также на Windows я использовал mRemoteNG, внутри которой для подключения по SSH используется тот же putty. Утилита гораздо более удобная, позволяющая подключаться по множеству протоколов, хотя мне нужны только SSH и RDP. Однако утилита похоже что заброшена…

Ну и вот пару месяцев назад я при поиске решения какой-то задачи наткнулся на упоминание такого файла, как .ssh/config. В общем в него можно вписать конфигурации всех требуемых серверов со всеми нужными параметрами подключения.

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

Host myserver
   HostName myserver.example.com
   Port 2222
   LocalForward 88 server.worgroup:80
   DynamicForward 7777

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

ssh myserver

Ну и из-за того, что в Windows 10 и Windows 11 уже имеется openssh-client, который идентичен unix-овому и просто собран под Windows — то всё вышеперечисленное работает и на винде. Там файл конфигурации будет размещён в %USERPROFILE%\.ssh\config