在一台机器(客户端)上,我想通过 ssh 连接到另一台机器(服务器)ssh server
。
在 的两台机器上~/.ssh
,我有两个 RSA 密钥:
id_rsa
id_rsa.pub
id_rsa_other
id_rsa_other.pub
id_rsa_other 在两台机器之间是一致的,因为客户端上的文件被 scp 到服务器上。
id_rsa 文件用于其他连接,我不希望它们相互协作。
我是否应该期望它开箱即用?当我尝试时ssh server
,它会检查密钥但无法进行身份验证并返回到提示输入密码。
我尝试添加
Host server
IdentityFile ~/.ssh/id_rsa_other
Hostname <actual server name>
User <actual user name on server>
到~/.ssh/config
客户端,但这并没有改变任何东西。
如果我运行ssh -vvv server
,我会看到它提供 id_rsa_other。
答案1
为了使ssh
基于密钥的身份验证有效,您需要在目标机器(服务器)上有一个文件,通常位于用户主目录中,.ssh
名为的子目录authorized_keys
应包含您要使用的公钥/私钥对的公钥。在本例中为id_rsa_other.pub
。因此,登录到服务器并执行以下命令:
cd ~/.ssh
cat id_rsa_other.pub >authorized_keys
然后尝试使用密钥登录该服务器