Достаточно часто приходится работать с одного компьютера по SSH с разными серверами: кучей локальных виртуальных машин, физическими серверами, внешними VDS/VPS и т.п. Они имеют разные IP-адреса, совершенно незапоминаемые полные доменные имена, слушают SSH на разных портах, заходить на них нужно под разными именами и с различными файлами ключей (identity-file) и т.д. и т.п.
Файл глобальных настроек клиента ssh (/etc/ssh/ssh_config) содержит кучу настроек, но они действуют для всех пользователей и для всех серверов.
В SSH присутствует прекрасная возможность — создать локальный файл настроек и для каждого сервера, с которым приходится работать, определить необходимые параметры. В нем можно переопределить все параметры из файла глобальных настроек (или определить, так как они, по умолчанию, практически все закомментированы).
Файл локальных настроек с именем config нужно создать в домашней директории в поддиректории .ssh — ~/.ssh/config.
Файл может иметь например такую структуру:
### Параметры, общие для всех хостов ##
Host *
ForwardAgent no
ForwardX11 no
ForwardX11Trusted yes
User main_admin
Port 22
Protocol 2
ServerAliveInterval 60
ServerAliveCountMax 30
## Параметры для локального DNS сервера ##
Host maindns
HostName dns1.example.loc
User sub_admin
Port 8888
IdentityFile /mnt/glasterfs/shared/users/sub_admin/keys/dns1/id_rsa
## Сербаз данных MySql ##
Host mysql
HostName 192.168.1.100
Port 6754
User first_admin
IdentityFile /home/first_admin/.ssh/mysql.key
## Login firstvds ##
Host firstvds
HostName 1.2.3.4
Port 6758
User main_admin
IdentityFile ~/.ssh/firstvds.key
Использование локального конфигурационного файла с разбивкой по серверам позволяет подстроить все «под себя» и избавится от запоминания или поиска информации для коннекта и набора достаточно длинных параметров. Например, вместо:
ssh -i /mnt/glasterfs/shared/users/sub_admin/keys/dns1/id_rsa -p 8888 first_admin@dns1.example.loc
при таком локальном конфигурационном файле достаточно набрать:
ssh maindns
В качестве провайдера VDS/VPS мы используем ihor.ru и vdsina. Очень дешевые и надежные хостеры.