
Короткий вопрос: я хотел бы узнать, можно ли дать ssh-соединениям «дружественные» имена в терминале?
Мои длинные рассуждения таковы...
У меня есть несколько кластеров серверов, работающих за одним IP-адресом через NAT. Я могу подключиться по SSH к отдельным серверам в каждом кластере с разными номерами портов, например:
ssh clust1 -p 2210
ssh clust1 -p 2220
ssh clust1 -p 2230
В Putty/Windows я бы дал каждому соединению разное имя (clust1-web1,clust1-web2,clust1-web3), но в Терминале я не вижу способа сделать это. Это создает проблему, поскольку я не могу различить сервер, к которому подключаюсь, по имени хоста, а номера портов несколько случайны.
решение1
Запустите это из терминала:
нано ~/.ssh/config
и затем вы можете вставить свои хосты следующим образом:
Host clust1-web1
Hostname clust1
User Username
Port 2210
Host clust1-web2
Hostname clust1
User Username
Port 2220
Затем вы можете подключиться по ssh, просто запустив:
ssh clust1-web1
Для получения полного списка аргументов, которые можно поместить в этот файл, выполните:
man ssh_config
решение2
это не совсем то же самое, но вы можете сохранить каждую команду подключения как псевдоним.
Или, если вы по какой-то причине не можете сделать это таким образом, просто сохраните каждую команду подключения как скрипт оболочки/bashscript, возможно, с именем connect-clust1-web1, и сохраните их в папке, которая также находится в вашем PATH.
поэтому вы можете просто ввести connect-clust1-web1 и вы подключитесь.
решение3
Вы можете настроить псевдонимы в вашем ~/.ssh/config
:
Host clust-web1
Hostname clust1.somedomain.tld
Port 2210
(и т. д)
Затем вы можете подключиться к этому хосту по ssh, используя псевдоним:
ssh clust-web1