3

我非常希望能够在同一台服务器上为不同的用户使用多个 SSH 密钥。我有一台用于虚拟主机和 SSH 隧道的服务器。我已经设置了一个没有专门用于 SSH 隧道的登录 shell 的帐户。我使用 root 用户来管理系统的其余部分。

我有两个 SSH 密钥,一个带有 root 用户的密码,一个没有 SSH 隧道的密码。如何做到这一点,当我以隧道用户身份连接时,它使用隧道密钥,而当我以 root 用户身份连接时,它使用 root 密钥?

4

1 回答 1

4

如果您为 root 用户设置了一个密钥,为您的隧道用户设置了另一个密钥(通过服务器/远程计算机上的文件authorized_keys),则应自动选择正确的密钥。

这是基于您加载了密钥ssh-agent并且它们可供ssh实用程序使用的假设。

否则,您可以使用 手动指定密钥ssh -i <identity file>

除此之外,您可以在 ssh_config 文件( ~/.ssh/config/etc/ssh/ssh_config )中设置别名:

Host server-root
User root
IdentityFile <path to your key>
Hostname <real hostname>

Host server-tunnel
User tunnel-user
IdentityFile <path to your key>
Hostname <real hostname>

然后你使用ssh server-rootor ssh server-tunnel

但我想说使用 ssh-agent 可能是最简单的设置。

如果您想在没有 ssh-agent 的情况下自动选择正确的密钥,您可以通过-i.

引用 OpenSSH 手册页:

 -i identity_file
     Selects a file from which the identity (private key) for public
     key authentication is read.  The default is ~/.ssh/identity for
     protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
     ~/.ssh/id_rsa for protocol version 2.  Identity files may also be
     specified on a per-host basis in the configuration file.  It is
     possible to have multiple -i options (and multiple identities
     specified in configuration files).  ssh will also try to load
     certificate information from the filename obtained by appending
     -cert.pub to identity filenames.
于 2013-02-15T04:29:25.433 回答