首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SSH免密登录的5种姿势,总有一种适合你

SSH免密登录的5种姿势,总有一种适合你

作者头像
用户8589624
发布2025-11-16 10:20:15
发布2025-11-16 10:20:15
4030
举报
文章被收录于专栏:nginxnginx

SSH免密登录的5种姿势,总有一种适合你

大家好,我是你们的Linux老司机小王。今天我们来聊聊一个让运维和开发人员又爱又恨的话题——SSH免密登录。

每次输入密码太麻烦?服务器太多记不住密码?自动化脚本需要免密执行?别担心,今天我就给大家带来SSH免密登录的5种姿势,保证总有一种适合你!

姿势一:经典公钥认证(新手必备) 这是最经典、最常用的SSH免密登录方式,适合刚入门的小白。

操作步骤:

  1. 在本地生成密钥对: ssh-keygen -t rsa -b 4096 (一路回车即可,如果想加密码保护可以设置passphrase)
  2. 将公钥上传到服务器: ssh-copy-id user@remote-server
  3. 测试登录: 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保护密钥但又不想频繁输入 • 需要同时使用多个密钥 姿势四:证书认证(企业级玩家) 前面的方法在企业环境中可能不够用,特别是服务器很多的时候。这时候就需要证书认证了。

操作步骤:

  1. 创建CA密钥: ssh-keygen -t rsa -b 4096 -f ca_key
  2. 签署用户公钥: ssh-keygen -s ca_key -I “user_identity” -n user1,user2 id_rsa.pub
  3. 服务器配置:

/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 • 结合前面的密钥认证使用更香 适用场景: • 需要通过堡垒机访问 • 复杂网络环境 • 安全隔离的网络区域 安全小贴士 在享受便利的同时,别忘了安全:

  1. 私钥权限必须是600: chmod 600 ~/.ssh/id_rsa
  2. 禁用密码登录(生产环境建议):

/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免密登录的姿势,从基础到高级,总有一种适合你的需求。记住,能力越大责任越大,便利性和安全性需要平衡。

你是用的哪种方式呢?或者你有更酷的玩法?欢迎在评论区留言分享!

下次见,记得三连(点赞、在看、分享)哦!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SSH免密登录的5种姿势,总有一种适合你
    • 生成专门用于某服务器的密钥
    • 配置~/.ssh/config
    • 启动agent
    • 添加密钥
    • 查看已添加密钥
    • /etc/ssh/sshd_config
    • 直接连接
    • 或者配置~/.ssh/config
    • /etc/ssh/sshd_config
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档