首页 > 服务器    日期:2026-08-19 / 浏览

操作

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

总结

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

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章