如何在 Ubuntu 中保存 SSH 选项和连接?

如何在 Ubuntu 中保存 SSH 选项和连接?

我目前有两台远程机器需要连接。其中一台我使用私钥和密码,另一台我使用 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 

相关内容