SSH免密登录的5种姿势,总有一种适合你
个人名片
🎓作者简介:java领域优质创作者
🌐个人主页:码农阿豪
📞工作室:新空间代码工作室(提供各种软件服务)
💌个人邮箱:[2435024119@qq.com]
📱个人微信:15279484656
🌐个人导航网站:www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?
- 专栏导航:
码农阿豪系列专栏导航
面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀
目录
SSH免密登录的5种姿势,总有一种适合你
大家好,我是你们的Linux老司机小王。今天我们来聊聊一个让运维和开发人员又爱又恨的话题——SSH免密登录。
每次输入密码太麻烦?服务器太多记不住密码?自动化脚本需要免密执行?别担心,今天我就给大家带来SSH免密登录的5种姿势,保证总有一种适合你!
姿势一:经典公钥认证(新手必备)
这是最经典、最常用的SSH免密登录方式,适合刚入门的小白。
操作步骤:
-
在本地生成密钥对:
ssh-keygen -t rsa -b 4096
(一路回车即可,如果想加密码保护可以设置passphrase) -
将公钥上传到服务器:
ssh-copy-id user@remote-server -
测试登录:
ssh user@remote-server
原理揭秘:
• 生成了id_rsa(私钥)和id_rsa.pub(公钥)
• 公钥被放到了服务器的~/.ssh/authorized_keys文件中
• 登录时,客户端用私钥签名,服务器用公钥验证
适用场景:
• 个人电脑连接服务器
• 少量服务器的管理
姿势二:多密钥管理(花心大萝卜专属)
如果你像我一样是个"花心大萝卜",不同的服务器用不同的密钥,那么这个姿势适合你。
生成专门用于某服务器的密钥
ssh-keygen -t ed25519 -f ~/.ssh/work_rsa -C “for work servers”
配置~/.ssh/config
Host work-server
HostName server.example.com
User workuser
IdentityFile ~/.ssh/work_rsa
IdentitiesOnly yes
高级技巧:
• 使用IdentitiesOnly yes避免SSH尝试所有密钥
• 可以为不同环境(生产、测试)配置不同密钥
适用场景:
• 需要区分个人和工作环境
• 不同项目使用不同密钥
• 安全等级要求不同的服务器
姿势三:SSH Agent(懒人福音)
如果你觉得每次都要指定密钥太麻烦,或者设置了passphrase不想每次都输入,SSH Agent来拯救你!
启动agent
eval “$(ssh-agent -s)”
添加密钥
ssh-add ~/.ssh/id_rsa
查看已添加密钥
ssh-add -l
小技巧:
• 可以添加到.bashrc或.zshrc自动启动
• macOS用户可以使用Keychain集成:
ssh-add -K ~/.ssh/id_rsa
适用场景:
• 使用passphrase保护密钥但又不想频繁输入
• 需要同时使用多个密钥
姿势四:证书认证(企业级玩家)
前面的方法在企业环境中可能不够用,特别是服务器很多的时候。这时候就需要证书认证了。
操作步骤:
- 创建CA密钥:
ssh-keygen -t rsa -b 4096 -f ca_key - 签署用户公钥:
ssh-keygen -s ca_key -I “user_identity” -n user1,user2 id_rsa.pub - 服务器配置:
/etc/ssh/sshd_config
TrustedUserCAKeys /etc/ssh/ca_key.pub
优势:
• 吊销证书只需更新CA
• 不需要在所有服务器上维护authorized_keys
• 可以设置证书有效期
适用场景:
• 企业环境
• 大量服务器管理
• 需要集中管控权限
姿势五:ProxyJump(套娃高手)
有时候我们需要通过跳板机访问内网服务器,这时候ProxyJump就派上用场了。
直接连接
ssh -J jumpuser@jumpserver:port targetuser@targetserver
或者配置~/.ssh/config
Host targetserver
HostName targetserver.internal
User targetuser
ProxyJump jumpuser@jumpserver
高级玩法:
• 可以多层跳转:-J user1@host1,user2@host2
• 结合前面的密钥认证使用更香
适用场景:
• 需要通过堡垒机访问
• 复杂网络环境
• 安全隔离的网络区域
安全小贴士
在享受便利的同时,别忘了安全:
- 私钥权限必须是600:
chmod 600 ~/.ssh/id_rsa - 禁用密码登录(生产环境建议):
/etc/ssh/sshd_config
PasswordAuthentication no
3. 使用强加密算法:
ssh-keygen -t ed25519 # 比RSA更安全更高效
4. 定期轮换密钥
疑难解答
Q: 配置了免密登录还是要求输入密码?
A: 检查以下内容:
• 服务器.ssh目录权限必须是700
• authorized_keys文件权限必须是600
• 查看服务器日志:sudo tail -f /var/log/auth.log
Q: 如何限制密钥只能执行特定命令?
A: 在authorized_keys中添加:
command=“ls” ssh-rsa AAAAB3NzaC…
结语
今天给大家介绍了5种SSH免密登录的姿势,从基础到高级,总有一种适合你的需求。记住,能力越大责任越大,便利性和安全性需要平衡。
你是用的哪种方式呢?或者你有更酷的玩法?欢迎在评论区留言分享!
下次见,记得三连(点赞、在看、分享)哦!


浙公网安备 33010602011771号