资讯动态

Linux SSH免密登录配置

发布时间:2026/8/19 4:00:19 来源:尧图企业网站定制
目录介绍需求密钥工作流程权限最小权限原则配置重要文件位置1. 生成密钥2. 拷贝公钥到服务器一服务器指纹确认可跳二拷贝公钥3. 验证第一次连接陌生服务器免密注意事项环境声明本教程所有操作基于CentOS 7版本。介绍需求为保证Linux ssh远程访问的服务器安全通常需要输入登录用户的密码。为了提高工作效率我们可以配置ssh免密这样基于ssh协议的命令都可以通过密钥自动认证无需密码。而且密码不会在网络传输密钥远比密码安全性更强像scp、rsync、sftp这些常用的基于ssh协议的命令工具都会继承免密特性密钥密钥是SSH 安全体系中的核心身份凭证密钥类型安全性性能兼容性适用场景与说明ed25519⭐⭐⭐ 最高⭐⭐⭐ 最快⭐⭐ 良好现代首选。自OpenSSH 6.52014年后广泛支持。密钥短256位安全性高速度快无兼容性问题时强烈推荐。RSA⭐⭐ 较高⭐⭐ 中等⭐⭐⭐ 最好通用标准。最广泛支持几乎所有SSH工具和协议的默认类型。建议使用4096位长度以确保安全性默认2048位。ECDSA⭐⭐ 较高⭐⭐ 中等⭐⭐ 良好椭圆曲线算法比RSA更高效。支持三种大小256、384、521位推荐。DSA⚠️ 低⭐ 慢⭐⭐ 良好已弃用强烈不建议使用。1024位固定长度安全性已不足OpenSSH 7.0后默认禁用。工作流程ssh分为以下文件注此目录为隐藏目录可在家目录下用ll -a看见1. authorized_keys所有允许免密登录本机的所有客户端公钥在第一次信任免密客户端时生成2. id_rsa本机的私钥不可外传3. id_rsa.pub本机的公钥以id开头密钥类型结尾可交给其他主机4. known_hosts本机信任的服务器主机密钥在第一次连接陌生主机时会写入文件。用于验证服务器真实性生成会话密钥建立安全通道权限最小权限原则私钥类文件必须 600只有所有者可读写公钥类文件带 .pub 后缀644 即可因为为公开信息目录权限必须 700防止其他用户遍历或修改OpenSSH 默认启用 StrictModes yes这意味着如果 authorized_keys、私钥文件或 .ssh 目录权限过于宽松如 group/other 可写sshd 会直接拒绝使用该文件进行认证你会看到 Permission denied (publickey) 错误配置重要文件位置用户密钥(~/.ssh/id_*) 用于登录认证主机密钥(/etc/ssh/ssh_host_*) 用于服务器身份验证1. 生成密钥默认生成的密钥类型是rsa默认长度2048位老版本新版本默认长度OpenSSH 8.2为3072位[rootmaster ~]# ssh-keygen -t rsa -b 4096直接输入三个Enter即可若设置Passphrase以后ssh连接时使用你的私钥需要输入Passphrase别人偷走你的私钥也没法使用但连接多出一步输密码过于麻烦省略即可在.ssh目录下会生成公私密钥自动化部署配置如果想掉过三个 enter 的交互静默生成可以ssh-keygen -t rsa -P -f ~/.ssh/id_rsa-P 私钥 passphrase-f指定密钥输出文件位置2. 拷贝公钥到服务器一服务器指纹确认可跳如果不是无法确认服务器的真实性可以不管。注第一次连接服务器时确认的是服务器的主机公钥指纹不是服务器的用户公钥先和服务器确认密钥指纹防止中间人攻击本机[rootmaster ~]# ssh-keyscan slave1 | ssh-keygen -l -f --是从标准输入读取数据服务器[rootslave1 ~]# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub两边一对比就知道服务器的真实性为什么只看ECDSA是因为ssh确认指纹显示默认优先顺序通常是ECDSA密钥短安全性高 ED25519 RSA只确认一种的指纹即可二拷贝公钥[rootmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa slave1不一定要加 -i 选项因为默认使用认证身份的私钥就是id_rsa默认查找顺序1. id_rsa # RSA (最常用)2. id_ecdsa # ECDSA3. id_ed25519 # ED25519 (现代)4. id_dsa # DSA (已弃用)5. id_xmss # 量子安全 (新)确认完服务器的密钥指纹后仅第一次使用ssh连接slave1时出现不一定是拷贝公钥才有输入服务器用户密码后即可完成公钥拷贝3. 验证第一次连接陌生服务器slave1的主机公钥已经出现在master的known_hosts中免密可以看到master中root用户的公钥已经到了服务器的authorized_keys中下次登录服务器的root用户可以直接登录无需密码之后通过exit可以返回master如果删除服务器中关于master中root用户字段的公钥下次登录便仍需密码注意事项一般来说登录都是对方相同的用户如果需登录指定用户可以ssh [服务器用户名][主机IP/主机名]免密操作是用户对用户的毕竟.ssh位于用户的家目录以上操作均是针对 master 和 slave1中 root 用户进行操作的切换用户仍需重新操作。如果想指定客户端的用户免密登录到服务端指定的用户在拷贝密钥时ssh-copy-id [服务器用户名][主机IP/主机名]

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价