操作
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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。













