大家好,我是你们的Linux老司机小王。今天我们来聊聊一个让运维和开发人员又爱又恨的话题——SSH免密登录。
每次输入密码太麻烦?服务器太多记不住密码?自动化脚本需要免密执行?别担心,今天我就给大家带来SSH免密登录的5种姿势,保证总有一种适合你!
姿势一:经典公钥认证(新手必备) 这是最经典、最常用的SSH免密登录方式,适合刚入门的小白。
操作步骤:
ssh-keygen -t ed25519 -f ~/.ssh/work_rsa -C “for work servers”
Host work-server HostName server.example.com User workuser IdentityFile ~/.ssh/work_rsa IdentitiesOnly yes 高级技巧: • 使用IdentitiesOnly yes避免SSH尝试所有密钥 • 可以为不同环境(生产、测试)配置不同密钥 适用场景: • 需要区分个人和工作环境 • 不同项目使用不同密钥 • 安全等级要求不同的服务器 姿势三:SSH Agent(懒人福音) 如果你觉得每次都要指定密钥太麻烦,或者设置了passphrase不想每次都输入,SSH Agent来拯救你!
eval “$(ssh-agent -s)”
ssh-add ~/.ssh/id_rsa
ssh-add -l 小技巧: • 可以添加到.bashrc或.zshrc自动启动 • macOS用户可以使用Keychain集成: ssh-add -K ~/.ssh/id_rsa 适用场景: • 使用passphrase保护密钥但又不想频繁输入 • 需要同时使用多个密钥 姿势四:证书认证(企业级玩家) 前面的方法在企业环境中可能不够用,特别是服务器很多的时候。这时候就需要证书认证了。
操作步骤:
TrustedUserCAKeys /etc/ssh/ca_key.pub 优势: • 吊销证书只需更新CA • 不需要在所有服务器上维护authorized_keys • 可以设置证书有效期 适用场景: • 企业环境 • 大量服务器管理 • 需要集中管控权限 姿势五:ProxyJump(套娃高手) 有时候我们需要通过跳板机访问内网服务器,这时候ProxyJump就派上用场了。
ssh -J jumpuser@jumpserver:port targetuser@targetserver
Host targetserver HostName targetserver.internal User targetuser ProxyJump jumpuser@jumpserver 高级玩法: • 可以多层跳转:-J user1@host1,user2@host2 • 结合前面的密钥认证使用更香 适用场景: • 需要通过堡垒机访问 • 复杂网络环境 • 安全隔离的网络区域 安全小贴士 在享受便利的同时,别忘了安全:
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免密登录的姿势,从基础到高级,总有一种适合你的需求。记住,能力越大责任越大,便利性和安全性需要平衡。
你是用的哪种方式呢?或者你有更酷的玩法?欢迎在评论区留言分享!
下次见,记得三连(点赞、在看、分享)哦!