我想要做的就是能够在同一台服务器上为不同的用户使用多个SSH密钥。我有一个服务器,我用于webhosting和SSH隧道。我已经设置了一个没有专门用于SSH隧道的登录shell的帐户。我使用root用户来管理系统的其余部分。
我有2个SSH密钥,一个有root用户密码,另一个没有SSH隧道密码。当我作为隧道用户连接时,如何使用隧道密钥,当我以root用户身份连接时,它使用根密钥?
答案 0 :(得分:3)
如果您为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-root
或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.