在开发和运维过程中,经常需要通过 SSH 或 SCP 自动化操作远程 CentOS 服务器。为了方便自动化部署,可以设置免密登录(基于 SSH Key)。以下分别介绍在 Linux 和 Windows 上如何配置。
🎯 1. Linux 系统配置免密访问 CentOS
- 生成 SSH Key(如果还没有):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"一路回车即可,生成在
~/.ssh/下的id_rsa(私钥)和id_rsa.pub(公钥)。 - 将公钥拷贝到 CentOS 目标机器:
ssh-copy-id user@centos_server_ip如果
ssh-copy-id不存在,可手动执行:cat ~/.ssh/id_rsa.pub | ssh user@centos_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" - 测试免密登录:
ssh user@centos_server_ip如果能直接登录,不输入密码,则配置成功。
🎯 2. Windows 系统配置免密访问 CentOS
Windows 系统可以使用 PowerShell + OpenSSH 或 PuTTY/PLink 来配置免密登录。
- 安装 OpenSSH 客户端(Windows 10/11 自带):
- 打开 设置 → 应用 → 可选功能 → 添加功能 → OpenSSH 客户端
- 生成 SSH Key:
ssh-keygen -t rsa -b 4096默认会生成在
C:\Users\YourUserName\.ssh\id_rsa和id_rsa.pub。 - 将公钥复制到 CentOS 目标机器:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh user@centos_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"注意 PowerShell 使用
type而不是 Linux 的cat。 - 测试免密登录:
ssh user@centos_server_ip如果能直接登录,则配置成功。
- 使用 PuTTY 或 PLink(可选):
- 使用 PuTTYgen 生成 key,并导出
ppk文件。 - 在 PuTTY/PLINK 中配置私钥,连接 CentOS 服务器即可实现免密登录。
- 使用 PuTTYgen 生成 key,并导出
🎯 3. 注意事项
- 确保目标 CentOS 用户的
~/.ssh目录权限为700,authorized_keys文件权限为600。 - 如果使用防火墙或 SELinux,需要允许 SSH 访问。
- 在 Jenkins Pipeline 或自动化脚本中,可直接使用免密 SSH/SCP 执行远程操作,无需再输入密码。
通过以上步骤,无论是 Linux 还是 Windows,都可以安全地配置免密访问 CentOS,实现自动化部署和远程管理。