跳过正文
  1. 博客文章/

修复 SSH 免密无法连接

·89 字·1 分钟·
SRE Linux Sshd
Zayn
作者
Zayn
专注 Kubernetes、CI/CD、可观测性等云原生技术栈,记录生产环境中的实战经验与踩坑复盘。
目录

说明
#

我们通常在远程连接目标服务器时,已避免经常性的输入密码,通常会通过 免密钥 的方式以解决每次连接多需要输入密码问题,但有的时候我们配置免密钥后,却未能生效,可以尝试使用下述方法进行解决。

SSH 免密钥方式
#

  1. 生成 SSH 公私钥

    ssh-keygen -b 2048 -t rsa -f ./id_rsa -q -N ""
    
  2. 公钥 COPY 至目标服务器,完成免密钥

    sshpass -p '{{ .ssh_password }}' \
        ssh-copy-id -p {{ .ssh_port }} -i id_rsa.pub \
        -o StrictHostKeyChecking=no "{{ .ssh_user }}@${host}" -f
    

解决方案
#

Plan 1
#

目标 服务器中执行

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_key

Plan 2
#

目标 服务器中执行

chmod 700 ~/.ssh/ 
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub 
chmod 644 ~/.ssh/authorized_keys

Plan 3
#

连接失败,有种情况和所使用私钥的权限配置不对有关。连接机执行

chmod 600 id_rsa

总结
#

按照上述三种方案,一般问题多能够得到解决,如果还是不行,请结合服务端日志,进一步分析定位。一般为 [sshd] 的配置错误导致。

相关文章

使用 Docker Compose 部署 OpenConnect VPN 服务器
·213 字·1 分钟
Linux 网络 Openconnect Docker-Compose Openldap
企业级 CentOS 7 系统初始化与优化完整指南
·2893 字·14 分钟
Linux Centos Centos7 Linux System-Optimization Server-Hardening Production-Deployment
Gocron 实践安装,实现统一定时任务管理平台
·225 字·2 分钟
Centos Linux Gocron Docker