我目前有两台远程机器需要连接。其中一台我使用私钥和密码,另一台我使用 root 密码。
现在,当我想使用 root 密码验证连接到机器时,首先 ssh 会要求我输入机器的密码,该机器的私钥位于我的 ~/.ssh 目录中,然后当我输入正确的密码时,让我输入我要使用的 root 密码连接的机器的密码。
有没有办法保存会话和连接选项,例如像在 Putty 中?
答案1
您可以使用位于的每个用户的 ssh-config 文件
~/.ssh/config
或系统全局的
/etc/ssh/ssh_config
存储每个连接的基本设置。
例子:
Host example_host
User foo
HostName example.com
IdentityFile ~/.ssh/foo.key
Port 23421
有了这个,调用
ssh example_host
将在端口 23421 上打开到 example.com 的 ssh 连接,使用用户 foo 和 foo.key 进行身份验证。
有关深入解释,请参阅 ssh 的手册页:
man ssh
不要忘记在配置文件上设置适当的权限:
chmod 600 ~/.ssh/config
答案2
正如~/.ssh/config
手册页所指出的那样ssh
。在那里和在中都有很好的描述,man ssh_config
并且在 askubuntu 上也多次得到解答。
总结:
# 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