Мне нужно ssh на разных машинах как с работы, так и из дома. На работе я могу легко использовать определения хоста ~/.ssh/config
и просто сделать:
ssh servername_shortcut
Когда я дома, мне нужно туннелировать через сервер шлюза, что является многоэтапным и утомительным процессом
ssh -N -f -C -L 2024:servername:22 username@gateway.hostname.org
ssh -p 2024 username@localhost
(это особенно раздражает, потому что я должен вручную убить туннель при отключении)
Точно так же мне часто нужно rsync вещи, что требует:
rsync -e 'ssh -p 2024' username@localhost:...
вместо
rsync username@servername_shortcut
Поскольку я часто переключаюсь между этими ситуациями, мне бы очень хотелось иметь возможность использовать короткую версию все время. Есть ли механизм для достижения этого?
РЕДАКТИРОВАТЬ: В частности, используя ~/.ssh/config
, есть ли способ указать имя хоста, которое будет использовать host.domain.org
когда это разрешено, и localhost:$portnumber
когда туннель открыт? В псевдокоде я прошу об этом:
host myhost
user aginsbur
if tunnel:
HostName localhost
port 2022
else:
HostName myhost.domain.org