记一次 Paramiko 提示 Authentication (publickey) failed问题解决过程

问题背景

在项目中会使用python中的Paramiko ssh模块完成对远程服务器的部署和执行命令。当在某一次对新镜像进行部署时,却发现Paramiko的ssh模块使用无密码方式却一直无法连接到指定服务器。使用密码方式去可以登录成功。

Paramiko模块一直会提示Authentication (publickey) failed问题,整个过程还是挺曲折的,所以记录和分析给大家。 以下是解决和分析该问题的主要关键步骤:

问题分析

使用putty工具使用用户名和密码方式登录的远程服务器,查看ssh服务状态,输入systemctl status sshd,以下是服务器ssh登录提示,关键信息就是"SSH Authentication Refused: Bad Ownership or Modes for Directory"
在这里插入图片描述
原来报错信息是因为新镜像中/root目录没有权限或者读写模式异常导致的。

同时我直接在linux系统中使用ssh命令连接本地,发现竟然也需要输入密码才可以,提示信息如下:
在这里插入图片描述
通过查资料了解到,需要使用chmod命令对/root目录和/root/.ssh设置读写权限。

解决关键步骤

  • 设置/root目录权限

    chmod 750 /root

  • 设置ssh目录权限

    chmod 600 /root/.ssh

问题验证

ssh 连接到本地不需要密码
在这里插入图片描述
使用systemctl status sshd命令查看也没有报之前的错误,重新使用工具可以正常连接到远程服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值