将ssh私钥复制到另一台计算机
我需要使用另一台计算机来访问我的ssh服务器。 这是因为我大学最近实施的vpn无法在我当前的计算机上运行,而且我无法访问服务器。
我通过加密的ssh密钥ssh。 我可以将这些密钥复制到新计算机上(vpn可以在其上工作)。 我尝试将~/.ssh
文件夹中的id_rsa
和id_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