Linux上的SSH错误。 修复拒绝(公钥)权限

本快速教程将向您展示如何修复ssh错误。 在Linux上“ Sign_and_send_pubkey:签名失败:代理拒绝操作权限被拒绝(公钥)”。

如果您尝试通过SSH连接到远程服务器,则可能会遇到“拒绝访问”错误。 发生此错误的原因有很多。 解决此问题的方法取决于错误原因。

在我们的例子中,我们在桌面上存储了公钥和私钥 的Ubuntu 04.16。 在Ubuntu 18.04发布之后,我们决定升级到此新版本。 与发行版更新相比,我们更喜欢全新安装。

因此,我们备份了主目录中的主文件夹,包括.ssh文件夹,该文件夹包含外部驱动器上的公钥和私钥。 安装Ubuntu 18.04之后,我们恢复了所有内容,包括SSH密钥。

现在,当我们尝试使用ssh连接到远程服务器时,我们认为它可以立即工作,因为存在相同的公钥和私钥。

但这没有用。 SSH给出了此错误:

sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).

如果您处于从其他来源复制SSH密钥的类似情况下,请让我向您展示如何解决此SSH错误。

错误修复权利拒绝(公钥)

因此,问题在于文件分辨率。 您会看到,当我们复制文件时,USB记忆棒是Microsoft的FAT文件格式。 该文件不支持UNIX / Linux文件权限。

因此,复制的ssh密钥的权限更改为777。

文件权限对于SSH太开放。 只是不允许使用公钥或私钥777。 这就是SSH拒绝连接的原因。

ls -l .ssh
-rwxrwxrwx 1 andreyex andreyex 1766 Nov 23  2017 id_rsa
-rwxrwxrwx 1 andreyex andreyex  398 Nov 23  2017 id_rsa.pub
-rwxrwxrwx 1 andreyex andreyex 4214 Sep 15 12:38 known_hosts

私钥必须仅对用户具有读和写权限,而对组和其他人则必须具有其他权限。

您必须使用CHMOD命令更改权限:

chmod 600 ~/.ssh/id_rsa

同样,公钥不应对该组和其他组具有写和执行权限。

chmod 644 ~/.ssh/id_rsa.pub

现在,您已经设置了正确的权限,您可以再次连接到ssh。 它将要求管理员密码来解锁密钥。 输入管理员密码。

这也教会了我们一个教训,复制和粘贴文件不是一个好主意,必须以不同的方式进行正确的备份,所有文件都将具有危险的777权限。 我不得不递归地更改整个主目录中的文件权限,并信任我,这不是很愉快。

如我们前面所说,此错误可能有多种原因。 有关打开文件的权限,此修补程序应帮助您修复SSH中的“权限被拒绝”(公钥)错误。

让我们在评论部分中了解此修复程序是否对您有用。 还可以提供有关将ssh密钥复制到其他计算机的意见。

请禁用您的广告拦截器或将此网站列入白名单!

Sidebar