当前位置: 代码网 > 服务器>服务器>Linux > Linux SSH配置密钥文件及免密登录指南

Linux SSH配置密钥文件及免密登录指南

2026年08月19日 Linux 我要评论
操作1、生成私钥文件ssh-keygen -t rsa -f id_pem_systemssh-keygen -p -m pem -f ./id_pem_system2、加入authorized_ke

操作

1、生成私钥文件

ssh-keygen -t rsa -f id_pem_system
ssh-keygen -p -m pem -f ./id_pem_system

2、加入authorized_keys文件

cat id_pem_system.pub >> authorized_keys

配置a机器免密登录b机器

1、获取b机器私钥

2、登录a机器,并且上传b机器私钥到以下目录

cd ~/.ssh/

3、设置密钥权限,必须设置600,否则拒绝连接。

chmod 600 ~/.ssh/id_rsa_root_2

4、配置a机器免密登录,并且使用指定账户、指定ip的私钥文件。

vi ~/.ssh/config
# 在a机器中 ~/.ssh/config 中添加
host 192.168.10.2
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes


# 多个主机
host root-test1
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes`

host root-test2
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes`
# 连接
ssh root-test1
ssh root-test2

5、通过简化命令就可以连接了

ssh 192.168.10.2

config 命令进阶

# 全局默认配置(所有主机生效)
host *
    identitiesonly yes      # 所有主机都仅用指定私钥
    port 22                 # 默认22端口
    user root               # 默认root用户
    serveraliveinterval 60  # 保持连接(每60秒发心跳)

# 主机1:覆盖user和私钥
host 192.168.10.2
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2

# 主机2:覆盖ip、user、私钥、端口
host 192.168.10.3
    hostname 192.168.10.3
    user admin
    identityfile ~/.ssh/id_rsa_admin_3
    port 2222  # 覆盖全局默认的22端口

# 主机3:用别名,仅指定差异项
host node4
    hostname 192.168.10.4
    user ubuntu
    identityfile ~/.ssh/id_rsa_ubuntu_4

场景1:同一主机,不同用户 + 不同私钥

# 别名1:以root用户登录192.168.10.2(用root私钥)
host node2-root
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes

# 别名2:以admin用户登录192.168.10.2(用admin私钥)
host node2-admin
    hostname 192.168.10.2
    user admin
    identityfile ~/.ssh/id_rsa_admin_2
    identitiesonly yes

# 别名3:简写(直接用ip作为别名,保留root规则)
host 192.168.10.2
    hostname 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes

场景2:同一主机,不同端口 + 不同私钥

# 别名1:22端口登录192.168.10.2(root用户)
host node2-port22
    hostname 192.168.10.2
    port 22
    user root
    identityfile ~/.ssh/id_rsa_root_2
    identitiesonly yes

# 别名2:2222端口登录192.168.10.2(admin用户)
host node2-port2222
    hostname 192.168.10.2
    port 2222
    user admin
    identityfile ~/.ssh/id_rsa_admin_2
    identitiesonly yes

场景3:复用公共配置(减少重复)

# 全局公共配置(所有主机生效)
host *
    identitiesonly yes
    serveraliveinterval 60  # 保持连接心跳

# 匹配目标主机:192.168.10.2的所有别名(精准复用)
match host node2-* 192.168.10.2
    hostname 192.168.10.2  # 统一指定物理主机ip
    stricthostkeychecking no  # 跳过主机密钥检查(可选)

# 别名1:root用户 + 默认22端口
host node2-root 192.168.10.2
    user root
    identityfile ~/.ssh/id_rsa_root_2

# 别名2:admin用户 + 22端口
host node2-admin
    user admin
    identityfile ~/.ssh/id_rsa_admin_2

# 别名3:root用户 + 2222端口(覆盖默认端口)
host node2-root-2222
    user root
    port 2222
    identityfile ~/.ssh/id_rsa_root_2_2222

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com