На этот вопрос уже есть ответ здесь:
В настоящее время у меня есть две удаленные машины, к которым я работаю подключение. Для одного я использую закрытый ключ с парольной фразой, а для другого я использую пароль root.
Теперь, когда я хочу подключиться к машине с аутентификацией по паролю root, сначала ssh запрашивает у меня парольную фразу для машины, закрытый ключ которой находится внутри моего каталога ~ / .ssh, а затем, когда я ввожу правильную парольную фразу, позвольте мне ввести пароль для машины к которому я подключаюсь с паролем root.
Есть ли способ сохранить сеансы и параметры подключения, например, как в Putty?
Можно использовать ssh-файл-конфигурации в расчете на пользователя, расположенный в
~/.ssh/config
или глобальный системой в
/etc/ssh/ssh_config
, который хранит основные настройки для каждого соединения.
Пример:
Host example_host
User foo
HostName example.com
IdentityFile ~/.ssh/foo.key
Port 23421
Имение в распоряжении этого, звоня
ssh example_host
откроет соединение SSH example.com на порте 23421, с помощью пользовательского нечто и foo.key для аутентификации.
Для в-глубоком объяснения, см. страницу справочника ssh:
man ssh
не забывают устанавливать верные полномочия на файле конфигурации:
chmod 600 ~/.ssh/config
Существует ~/.ssh/config
, как указано на страницах руководства для ssh
. Это хорошо описано там и в man ssh_config
, а также много раз отвечало на Askubuntu.
TL; DR:
# to preserve connections:
ControlMaster auto
ControlPath ~/.ssh/controlmasters/%r@%h:%p
ControlPersist 20m
# to provide correct keys, users, IPs and use aliases
Host yourHost
Hostname IPaddress
User user1
IdentityFile ~/.ssh/id_ecdsa
Host yourSecondHost
Hostname IP2
User user2
IdentityFile ~/.ssh/id_rsa
Если вы не хотите писать парольные фразы, есть ssh-agent
, где вы можете добавить ключи для вашей сессии:
eval `ssh-agent`
ssh-add ~/.ssh/id_ecdsa
# insert passphrase once
ssh yourHost
# will ask only for password
# next ssh connections will not ask for