0

我有一台机器 X,我登录到 X 并发出一个ssh somewhere使用密钥身份验证的命令,它工作正常。

当我从 12.10 机器(没有我的特殊机器 X 密钥)SSH 到机器 X 并尝试上面相同的命令时,它会失败并Permission denied (publickey).显示消息。我四处搜索,看起来这与 ssh 代理转发有关,但我不确定。

我在尝试从最新的secureCRT SSH 时也遇到了同样的问题。我尝试在secureCRT中禁用代理转发,但没有成功。

我该如何解决这个问题?如果禁用代理转发是关键,我该怎么做?我需要更改目标机器中的任何内容吗?

4

2 回答 2

0

需要将参数 ForwardAgent=yes 更改为 /etc/ssh/ssh_config

于 2013-11-13T12:44:02.160 回答
-1

该错误意味着机器 X 只接受公钥身份验证,而您在 12.10 机器上似乎没有私钥。

请注意,机器密钥和您的密钥之间存在差异。

在 12.10 上(在大多数机器上也是如此),机器密钥是在安装 openssh-server 软件包时创建的,并将保存在名为类似的文件中/etc/ssh/ssh_host_*_key[.pub]

您的密钥保存在您运行 ssh-keygen 的机器上,通常在~/.ssh/id_rsa和中找到~/.ssh/id_rsa.pub

在您的情况下,从 12.10 SSH 到 X,您需要安全地~/.ssh/id_rsa从 X 复制到 12.10。请注意,这是您的私钥,您不想让任何人看到它。

接下来,您需要确保在 X 上~/.ssh/id_rsa.pub调用的文件中有一个副本。(应该完成这项工作)~/.ssh/authorized_keyscat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

您还需要确保正确的权限:该~/.ssh/目录应该rwx只有您自己,并且其中的文件~/.ssh/最好rw只由您设置。

于 2013-01-14T15:54:14.493 回答