【总结】解决linux 配置authorized_keys 免密,登录时还是要求输入密码

1.问题现象

linux 配置authorized_keys 后还是要求输入密码,本来之前免密是好好的,但安装了一款软件后,不知道什么原因,突然就不能免密登录了。

于是重新配置authorized_keys,还是不能成功免密登录。

2.排查分析

2.1 检查SSH服务配置

检查/etc/ssh/sshd_config文件中的PasswordAuthentication选项是否被设置为no。如果是,确保你已经将其修改为no,并重启SSH服务。

# 修改配置文件
sudo vim /etc/ssh/sshd_config
# 找到并修改以下行
PasswordAuthentication no
# 保存文件并退出编辑器
# 重启SSH服务
sudo systemctl restart sshd

试了改方法,重新免密ssh 登录,还是不行。

2.2 ssh相关的目录和文件权限

继续排查:ssh相关的目录和文件权限。

权限问题:确保你的~/.ssh目录~/.ssh/authorized_keys文件的权限是正确的。~/.ssh目录的权限应该是700(即只有所有者有读写执行权限),~/.ssh/authorized_keys文件的权限应该是600。

结果显示,都是对的。如果不对的话,可以按下述方式修复:

# 修正.ssh目录权限
chmod 700 ~/.ssh
# 修正authorized_keys文件权限
chmod 600 ~/.ssh/authorized_keys

2.3 检查SELinux

SELinux问题:如果你的系统启用了SELinux,确保SELinux没有阻止SSH公钥认证。

# 查看SELinux状态
sestatus
# 如果SELinux处于启用状态,并且阻止了SSH公钥认证,你可以尝试以下命令
# 设置SELinux以允许SSH公钥认证
sudo setsebool -P sshd_pubkey_authentication 1
用户主目录权限问题:确保用户的主目录权限正确。

2.4 查看用户主目录权限

用户主目录,权限必须是700,否则ssh 免密也会不成功。
ls -ld /home/username

# 如果用户权限不正确,修改权限
sudo chown username:username /home/username
SSH客户端配置问题:检查你的SSH客户端配置文件(通常是~/.ssh/config)
确保没有禁用公钥认证。
# 查看SSH客户端配置
nano ~/.ssh/config
# 确保没有如下配置
# Host *
#   PubkeyAuthentication no
如果以上步骤都不能解决问题,请检查系统的日志文件(如/var/log/auth.log或/var/log/secure),以获取更多关于认证失败的信息。

# 如果用户权限范围不正确,修改权限
sudo chmod 700 /home/username

3.问题解决

我这里遇到的问题,刚好就是用户主目录权限被变更了。
如下图:
在这里插入图片描述
解决方法:执行 sudo chmod 700 /home/username 将用户主目录权限变更

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值