在建立SSH连接期间,您可能会得到“ 错误权限被拒绝(公钥) “错误。此错误阻止您通过SSH连接到远程系统。远程系统可以是Linux、Ubuntu、Mint、Kali、Linode服务器、Digital Ocean服务器或AWS服务器等。此错误是由于加密密钥而产生的。
“错误权限被拒绝(公钥)”解决方案
“Error Permission Denied(publickey)”错误有不同的原因和原因,应该针对这些不同的原因提供不同的解决方案。
检查您是否有有效的SSH密钥,如果没有,请创建SSH密钥
第一种解决方案是检查当前用户是否具有部署到远程SSH服务器的SSH密钥。SSH密钥位于用户的主目录.SSH文件夹下。列出以下内容。
ls ~/.ssh/
如果没有名称为id_rsa或id_rsa.pub的文件,通常包含术语id。请使用下面的帖子创建SSH密钥并部署到远程SSH服务器。
为本地公共和私有SSH密钥设置Rigth文件权限
公共和私有文件存储在users home directory.ssh文件夹下。即使存在公钥和私钥,它们也需要具有当前用户读取的正确文件权限。使用以下chmod命令设置此目录文件权限。
chmod -R 740 ~/.ssh/
检查本地计算机密钥在远程系统上是否经过身份验证
通过GUI等登录到要连接的远程系统,然后导航到目标用户目录并查看.ssh文件夹下的authorizedu keys文件。
cat ~/.ssh/authorized_keys
![图片[1]-SSH“Error Permission Denied(publickey)”错误及解决方案-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/12/linuxtect_image-20.png)
检查给定的密钥是否与您的本地系统公钥相同,可以如下所示。
ls ~/.ssh/
从多个密钥中选择正确的SSH密钥
本地系统用户可能有多个密钥。在尝试连接远程SSH服务器时,将使用其中一个密钥,但这可能不是正确的密钥。所以通过使用 -我 参数与ssh命令一起使用时,应选择正确的密钥。应选择私钥。
ssh -i ~/.ssh/id_rsa2
启用SSH服务器的根登录
根是一个具有管理权限的特殊帐户。默认情况下,SSH服务器配置禁用通过SSH的根登录。如果尝试使用root和key登录,可能会出现此错误。为了解决这个问题,请在ssh配置文件中启用root登录 /etc/ssh/sshdu配置 .
PermitRootLogin prohibit-password
行至
PermitRootLogin yes
重新启动SSH服务以应用配置和相关更改
我们为“Permission denied(publickey)”错误定义了不同的解决方案。为了应用这个新配置,SSH服务器应该重新启动。
sudo systemctl restart sshd
相关文章: 使用SSH-keygen命令生成SSH密钥