我需要使用另一台计算机来访问我的 ssh 服务器。这是因为我大学最近实施的 vpn 无法在我当前的计算机上运行,而且我无法访问服务器。
我通过加密的 ssh 密钥 ssh。我可以将这些密钥复制到新计算机(vpn 在其上运行)。我尝试复制文件夹中的id_rsa和id_rsa.pub文件,~/.ssh但它无法识别密钥,也没有提示输入密码来解密密钥。
编辑:我无法访问服务器来为新计算机生成新的密钥对,而且我在国外,因此无法物理访问它。
谢谢。
ænd*_*rük 81
检查您的私钥文件的权限和所有权。从手册中,
这些文件包含敏感数据,用户应该可以读取但其他人无法访问(读/写/执行)。如果其他人可以访问,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
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式强制执行:
$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
加密的私钥保持其相应的未加密公钥。这就是 SSH 客户端可以在不询问您密码的情况下连接到远程服务器的方式(此时它只提供公共部分)。每当服务器接受公钥时,您 PC 上的客户端想要解密私钥并要求您输入密码。
现在,只要服务器只接受来自特定 IP 地址的连接,这在第一步中就已被拒绝,并解释了您从服务器收到的消息“服务器不允许漫游”。
因此,我最好的猜测是您的服务器以某种方式受到限制,仅允许此密钥的特定 IP 地址。您可以通过多种方式做到这一点,但这是一种常见的方式~/.ssh/authorized_keys:
from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]
Run Code Online (Sandbox Code Playgroud)
为了证明你可以在没有密码的情况下从加密的私钥中读取公钥,运行:
ssh-keygen -y -f /path/to/private/key
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162390 次 |
| 最近记录: |