将ssh私钥复制到另一台计算机

我需要使用另一台计算机来访问我的ssh服务器。 这是因为我大学最近实施的vpn无法在我当前的计算机上运行,​​而且我无法访问服务器。

我通过加密的ssh密钥ssh。 我可以将这些密钥复制到新计算机上(vpn可以在其上工作)。 我尝试将~/.ssh文件夹中的id_rsaid_rsa.pub文件复制,但它无法识别密钥,也没有提示输入密码来解密密钥。

编辑:我无法访问服务器为新计算机生成新的密钥对,并且我不在国外,因此无法实际访问它。

谢谢。

检查私钥文件的权限和所有权。 从手册 ,

这些文件包含敏感数据,应该可由用户读取,但其他人无法访问(读/写/执行)。 如果其他人可以访问私有密钥文件,ssh将忽略它。

通常,密钥文件应如下所示,

 $ ls -l ~/.ssh/id_rsa* -rw------- 1 benj benj 1766 Jun 22 2011 .ssh/id_rsa -rw-r--r-- 1 benj benj 388 Jun 22 2011 .ssh/id_rsa.pub 

您可以通过以下方式强制执行:

 $ chown benj:benj ~/.ssh/id_rsa* $ chmod 600 ~/.ssh/id_rsa $ chmod 644 ~/.ssh/id_rsa.pub 

在SSH进入服务器之前尝试运行ssh-add – 然后应该提示您输入密码,然后后续的ssh连接可以使用您的私钥。

ssh-add命令将密钥添加到密钥代理。

加密的私钥保持未加密的相应公钥。 这就是SSH客户端如何在不向您询问密码的情况下连接到远程服务器的方式(此时它仅提供公共部分)。 每当服务器接受公钥时,PC上的客户端都想要解密私钥并要求您提供密码。

现在,只要服务器只接受来自特定IP地址的连接,就会在第一步中拒绝这一点,并解释您从服务器获取的消息“服务器不允许漫游”。

因此,我最好的猜测是,您的服务器在某种程度上受到限制,只允许此密钥的特定IP地址。 您可以通过多种方式执行此操作,但这是~/.ssh/authorized_keys的常见方法:

 from="192.168.1.2" ssh-rsa AAAAB3NzaC[...] 

要certificate您可以在没有密码的情况下从加密的私钥中读取公钥,请运行:

 ssh-keygen -y -f /path/to/private/key