ubuntu无法ssh远程,提示'Permission denied (publickey)'的解决方法

 更新时间:2025年04月19日 15:29:34   作者:蜜蜂不采蜜  
SSH(Secure Shell)是一种加密的网络协议,用于在网络上安全地传输数据,它被广泛用于远程登录和执行命令,有时候使用SSH登录时,可能会遇到错误消息Permission denied (publickey)导致登录失败,这种情况可能由多种原因引起,将探讨导致SSH登录失败的可能性,并提供解决方案

最近有小伙伴在使用ubuntu远程的时候一直无法远程,刚开始以为时openssh的问题,升级完openssh之后,再次远程时还是提示以下报错。

ubuntu系统ssh远程的时候提示

原因分析

SSH(Secure Shell)是一种加密的网络协议,用于在网络上安全地传输数据。它被广泛用于远程登录和执行命令。然而,有时候当我们尝试使用SSH登录时,可能会遇到错误消息Permission denied (publickey)导致登录失败。这种情况可能由多种原因引起。在本文中,我们将探讨导致SSH登录失败的可能性,并提供解决方案。

1. SSH密钥不匹配

这是最常见的原因之一。当SSH客户端尝试使用公钥进行身份验证时,如果公钥与服务器上的私钥不匹配,就会导致登录失败。为了解决这个问题,您需要确保在服务器上正确配置了公钥,并且客户端使用的私钥与之匹配。

2. SSH密钥权限不正确

另一个可能性是私钥文件的权限不正确。私钥文件应该只能被所有者读取和写入,否则SSH客户端会拒绝使用它进行身份验证。您可以使用以下命令更改私钥文件的权限:

chmod 600 ~/.ssh/id_rsa

3. SSH服务配置错误

有时候,SSH服务器的配置可能导致登录失败。确保SSH服务器配置正确,并且允许使用密码和公钥进行身份验证。您可以检查SSH服务器的配置文件(通常是/etc/ssh/sshd_config)并确保以下3个选项被如下正确设置:

PubkeyAuthentication yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
KbdInteractiveAuthentication yes

重启ssh服务:sudo systemctl restart sshd

4. 公钥未添加到服务器的authorized_keys文件中

如果您的公钥未添加到服务器的authorized_keys文件中,那么SSH服务器将无法验证您的身份。您可以使用以下命令将本地公钥添加到服务器的authorized_keys文件中:

ssh-copy-id ubuntu@10.184.193.115

或,直接copy本地的公钥到服务器的authorized_keys文件中,且确保文件权限如下:

-rw------- 1 ubuntu ubuntu 1155 Mar 14 08:51 .ssh/authorized_keys

5. SSH密钥损坏

最后一种可能性是SSH密钥本身损坏。如果您怀疑密钥已损坏,可以尝试生成一个新的密钥对,并将公钥添加到服务器上。
以下命令用于产生密钥:

解决方法:

1.登录现在无法ssh远程的这台主机,打开sshd的配置文件,找到PasswordAuthentication这行。

 vi /etc/ssh/sshd_config

ubuntu系统ssh远程的时候提示

2.将PasswordAuthentication no这行的no改为yes或者直接注释调这一行(蜜蜂这里就直接注释了)

ubuntu系统ssh远程的时候提示

3.重启sshd服务

sudo systemctl restart sshd

ubuntu系统ssh远程的时候提示

4.回到之前的10.42.251.150机器后再次ssh 10.42.251.150此时可以正常连接上了:

ubuntu系统ssh远程的时候提示

总结

到此这篇关于ubuntu无法ssh远程,提示'Permission denied (publickey)'的解决方法的文章就介绍到这了,更多相关ssh远程,提示'Permission denied (publickey)'内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux 下配置LAMP环境

    linux 下配置LAMP环境

    本文给大家介绍的是如何在linux 下配置LAMP环境,学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP、WAMP、MAMP等。这里我介绍一下LAMP环境的搭建,即Linux、Apache、MySQL、PHP环境。
    2015-03-03
  • Centos7安装完后无法联网的解决方法

    Centos7安装完后无法联网的解决方法

    这篇文章主要为大家详细介绍了Centos7安装完后无法联网的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Linux部署nginx访问文件403问题及解决

    Linux部署nginx访问文件403问题及解决

    在Linux服务器上通过Nginx部署时遇到403错误,原因是文件权限不足,解决方案一:使用`chmod -R 777`赋予Web目录读写权限;解决方案二:调整`umask`值为0022,确保新创建的文件和目录具有正确的权限
    2024-11-11
  • mac下配置和访问阿里云服务器(Ubuntu系统)的图文教程

    mac下配置和访问阿里云服务器(Ubuntu系统)的图文教程

    这篇文章主要介绍了mac下配置和访问阿里云服务器(Ubuntu系统)的图文教程,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • 从0开始简单部署腾讯云服务器的方法步骤

    从0开始简单部署腾讯云服务器的方法步骤

    这篇文章主要介绍了从0开始简单部署腾讯云服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux下nginx配置https协议访问的方法

    Linux下nginx配置https协议访问的方法

    这篇文章主要介绍了Linux下nginx配置https协议访问的方法,需要的朋友可以参考下
    2016-07-07
  • 批量数据导入Neo4j的实现方式

    批量数据导入Neo4j的实现方式

    本文总结了Neo4j批量数据导入的三种方式:LOADCSV(处理中小数据集)、neo4j-admin(适用于大数据)及Kettle工具,需注意CSV格式、路径配置、数据类型转换及编码问题,确保数据正确导入
    2025-08-08
  • linux特殊权限使用(suid、sgid、sbit)

    linux特殊权限使用(suid、sgid、sbit)

    这篇文章主要介绍了linux特殊权限使用(suid、sgid、sbit),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • linux特殊字符及其作用大全

    linux特殊字符及其作用大全

    这篇文章主要介绍了linux特殊字符及其作用,文中给大家补充介绍了linux特殊字符用法,需要的朋友可以参考下
    2018-04-04
  • 虚拟机与物理机的文件共享方式

    虚拟机与物理机的文件共享方式

    文章介绍了如何在Kali Linux虚拟机中实现物理机文件夹的直接挂载,以便在虚拟机中方便地读取和使用物理机上的文件,通过设置和配置,可以实现临时挂载和永久挂载,并提供了详细的步骤和注意事项
    2025-01-01

最新评论