告别弱密码!SSH密钥认证实战:从加密原理到禁用密码登录

张开发
2026/5/11 9:06:46 15 分钟阅读

分享文章

告别弱密码!SSH密钥认证实战:从加密原理到禁用密码登录
摘要密码认证存在被暴力破解的风险而SSH密钥认证基于非对称加密安全性极高。本文将深入讲解对称加密与非对称加密的原理、算法及对比并使用MobaXterm生成RSA密钥对将公钥上传至Linux服务器配置SSH仅允许密钥登录彻底关闭密码通道。适合所有Linux运维人员和开发者。一、实验环境设备操作系统说明客户端Windows安装MobaXterm用于生成密钥对远程连接服务器Kali Linux 2026.1作为SSH服务端配置密钥认证此处客户端也可使用Kali自身但为演示常用工具使用MobaXterm。二、加密基础对称加密与非对称加密在深入SSH密钥认证前必须理解两种基本加密方式。2.1 对称加密Symmetric Encryption原理加密和解密使用同一个密钥。发送方用密钥加密数据接收方用相同的密钥解密。特点加解密速度极快适合大量数据。密钥管理困难每对通信方需要共享一个密钥n个人需要n(n-1)/2个密钥。密钥传输过程中容易被截获。常见算法DES已过时、3DES、AES最常用、SM4国密。密钥长度通常128位、192位、256位AES。应用场景文件加密、数据库加密、SSL/TLS中的批量数据传输会话密钥。2.2 非对称加密Asymmetric Encryption原理使用一对密钥——公钥public key和私钥private key。公钥加密的数据只能用私钥解密私钥加密的数据只能用公钥解密数字签名。特点安全性极高无需共享密钥。加解密速度慢比对称加密慢几个数量级。公钥可公开私钥必须保密。常见算法RSA、DSA数字签名、ECC椭圆曲线、SM2国密。密钥长度RSA常用1024、2048、4096位。应用场景加密用对方公钥加密消息确保只有对方私钥能读。身份认证/数字签名用私钥签名对方用公钥验证。SSH密钥认证客户端用私钥证明身份服务器用公钥验证。2.3 对比总结特性对称加密非对称加密密钥数量12公钥私钥密钥分发困难需安全通道简单公钥可公开速度快慢约100倍差距安全性取决于密钥长度和算法更高典型算法AESRSA、ECCSSH中的角色会话加密实际传输数据身份认证 交换会话密钥SSH协议结合了两者初期用非对称加密完成身份认证和会话密钥交换之后用对称加密如AES加密所有通信内容。三、SSH密钥认证工作原理客户端生成密钥对ssh-keygen私钥保存在本地公钥上传至服务器~/.ssh/authorized_keys。客户端发起连接服务器发送一个随机字符串。客户端用私钥签名将签名结果返回服务器。服务器用公钥验签若通过允许登录。整个过程不传输密码即使网络被监听也无法获得私钥。四、实战配置SSH密钥认证步骤1在客户端生成密钥对使用MobaXterm打开MobaXterm本地终端执行ssh-keygen -t rsa -b 2048提示保存路径默认/home/mobaxterm/.ssh/id_rsa回车提示输入密码短语可留空直接回车方便自动化再次确认回车生成后私钥id_rsa公钥id_rsa.pub。步骤2将公钥拷贝到服务器在MobaXterm终端中执行ssh-copy-id root10.0.0.129输入root密码当前服务器允许密码登录公钥会自动追加到服务器的/root/.ssh/authorized_keys文件中。问题解决若kali的root用户不支持ssh连接登录执行以下内容可解决sudo sed -i s/^#PermitRootLogin prohibit-password/PermitRootLogin yes/ /etc/ssh/sshd_config sudo sed -i s/^#PasswordAuthentication yes/PasswordAuthentication yes/ /etc/ssh/sshd_config sudo systemctl restart ssh步骤3验证公钥上传成功在Kali服务器上查看ls /root/.ssh/ cat /root/.ssh/authorized_keys步骤4测试密钥登录在MobaXterm中直接连接ssh root10.0.0.129此时无需输入密码直接登录成功。步骤5禁用密码登录最终加固在Kali服务器上编辑/etc/ssh/sshd_configvim /etc/ssh/sshd_config找到#PasswordAuthentication yes改为PasswordAuthentication no重启SSH服务systemctl restart ssh验证再次尝试用密码登录会被拒绝只有持有私钥的客户端才能登录。五、总结本文首先系统阐述了对称加密与非对称加密的原理、算法、特点及应用场景明确了两者在SSH协议中的协同作用非对称加密用于身份认证和会话密钥交换对称加密用于实际数据传输。随后在Windows客户端MobaXterm与Kali Linux服务器环境中详细演示了SSH密钥认证的完整配置流程使用ssh-keygen生成RSA密钥对通过ssh-copy-id上传公钥测试免密登录最后修改SSH配置文件禁用密码登录。实验结果表明密钥认证彻底消除了密码暴力破解的风险同时提升了登录便捷性。运维人员应优先采用密钥认证并定期审核authorized_keys文件移除失效或未授权的公钥。对于高安全环境建议为私钥设置强密码短语并启用SSH代理转发限制。重要声明本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。如果这篇文章帮你解决了实操上的困惑别忘记点击点赞、分享也可以留言告诉我你遇到的其它问题我会尽快回复。你的关注是我坚持原创和细节共享的力量来源谢谢大家。

更多文章