Достаточно часто приходится работать с одного компьютера по 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. Очень дешевые и надежные хостеры.