管理服务器时,每次登录都要输密码,既麻烦又不安全。SSH 免密登录用密钥代替密码,配置一次,以后连接就不用再输密码了。这样不仅更安全,还能方便地做自动化任务、管理多台服务器。现在就一起开始,告别重复输入密码吧!

  • A 服务器操作系统:Ubuntu 24.04.2 LTS
  • B 服务器操作系统:CentOS Linux 7 (Core)

1、A/B 服务器配置

  • A 服务器(发起 SSH 连接的主机)
  • B 服务器(被连接的主机)
  • 下方以配置 root 用户为例,生产环境建议使用非 root 用户配置 SSH 密钥

2、生成 SSH 密钥对

### A ###
# 检查是否已有密钥
ls -la ~/.ssh/

# 如果不存在,生成新密钥(推荐选择一种算法)
# 注意:执行命令后连续按 Enter 键,使用默认设置即可
ssh-keygen -t rsa -b 4096           # RSA 算法,兼容性好
# 或
ssh-keygen -t ed25519               # Ed25519 算法,更安全快速
# 或
ssh-keygen -t ecdsa -b 521          # ECDSA 算法

### B ###
# 确保 .ssh 目录存在且权限正确
mkdir -p ~/.ssh
chmod 700 ~/.ssh

3、配置授权公钥

### A ###
# 测试为配置公钥前需要用户密码登录
ssh root@172.16.13.200 pwd
# 将 A 服务器的公钥传入 B 服务器并重命名为 authorized_keys
scp ~/.ssh/id_rsa.pub root@172.16.13.200:~/.ssh/authorized_keys

### B ###
# 设置正确的文件权限
chmod 600 ~/.ssh/authorized_keys
# 查看 authorized_keys 文件
ls -la ~/.ssh/

4、测试连接

### A ###
# 在 A 服务器测试连接,ssh <username>@<B服务器IP> pwd
# 预期结果:无需输入密码,直接返回远程主机的当前目录路径
ssh root@172.16.13.200 pwd

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐