Could not establish connection to “54.151.34.101“: Permission denied (publickey).

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

如果您尝试通过 SSH 连接到远程服务器,则可能会遇到权限被拒绝错误。发生此错误可能有多种原因。

在远程系统上禁用基于密码的身份验证
您的公钥不会添加到服务器,这只允许基于密钥的授权
SSH 密钥上的文件权限错误
解决此问题取决于错误背后的确切原因。

就我而言,我将公钥和私钥存储在 Ubuntu 16.04 桌面上。在 Ubuntu 18.04 发布后,我决定升级到这个较新的版本。我更喜欢全新安装而不是发行版升级。

因此,我备份了主目录的主文件夹,包括在外部磁盘上具有公钥和私钥的.ssh文件夹。

安装后,我在 Ubuntu 18.04 上启用了 SSH 并恢复了包括 SSH 密钥在内的所有内容。

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

但它没有用。SSH给了我这个错误:

sign_and_send_pubkey: signing failed: agent refused operation
root@xxx.xxx.xxx.xx: Permission denied (publickey).
如果您遇到从其他来源复制SSH密钥的类似情况,让我向您展示如何修复此SSH错误。

更正 ~/.ssh 文件夹及其内容的文件权限
根据经验,您可以对 ssh 目录及其文件(私钥、公钥、known_hosts、ssh 配置文件等)设置以下权限

元素 许可
.ssh 目录 700 ((DRWX------)
公钥 644 (-rw-r-r-r–)
私钥 600 (-rw-------)
authorized_keys 600 (-rw-------)
known_hosts 600 (-rw-------)
配置 600 (-rw-------)
您可能没有所有文件,但您必须在此处拥有公钥和私钥。

现在让我们看看如何更改 ssh 密钥和其他文件的文件权限。

修复权限被拒绝(公钥)错误
所以问题出在这里的文件权限。你看,当我复制文件时,USB是Microsoft的FAT文件格式。此文件不支持 UNIX/Linux 文件权限。

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

对于 SSH,文件权限过于开放。根本不允许对公钥或私钥拥有 777 权限。这就是SSH在这里拒绝连接的原因。

ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12 2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek 398 Nov 12 2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts
私钥应仅对用户具有读取和写入权限,而对组和其他人没有其他权限。

您应该使用 chmod 命令更改权限:

chmod 600 ~/.ssh/id_rsa
同样,公钥不应具有组和其他的写入和执行权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值