🔑 Linux 和 Windows 上免密访问 CentOS 目标机器指南

在开发和运维过程中,经常需要通过 SSH 或 SCP 自动化操作远程 CentOS 服务器。为了方便自动化部署,可以设置免密登录(基于 SSH Key)。以下分别介绍在 LinuxWindows 上如何配置。


🎯 1. Linux 系统配置免密访问 CentOS

  1. 生成 SSH Key(如果还没有):
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    一路回车即可,生成在 ~/.ssh/ 下的 id_rsa(私钥)和 id_rsa.pub(公钥)。

  2. 将公钥拷贝到 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"
  3. 测试免密登录:
    ssh user@centos_server_ip

    如果能直接登录,不输入密码,则配置成功。


🎯 2. Windows 系统配置免密访问 CentOS

Windows 系统可以使用 PowerShell + OpenSSHPuTTY/PLink 来配置免密登录。

  1. 安装 OpenSSH 客户端(Windows 10/11 自带):
    • 打开 设置 → 应用 → 可选功能 → 添加功能 → OpenSSH 客户端
  2. 生成 SSH Key:
    ssh-keygen -t rsa -b 4096

    默认会生成在 C:\Users\YourUserName\.ssh\id_rsaid_rsa.pub

  3. 将公钥复制到 CentOS 目标机器:
    type $env:USERPROFILE\.ssh\id_rsa.pub | ssh user@centos_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

    注意 PowerShell 使用 type 而不是 Linux 的 cat

  4. 测试免密登录:
    ssh user@centos_server_ip

    如果能直接登录,则配置成功。

  5. 使用 PuTTY 或 PLink(可选):
    • 使用 PuTTYgen 生成 key,并导出 ppk 文件。
    • 在 PuTTY/PLINK 中配置私钥,连接 CentOS 服务器即可实现免密登录。

🎯 3. 注意事项

  • 确保目标 CentOS 用户的 ~/.ssh 目录权限为 700authorized_keys 文件权限为 600
  • 如果使用防火墙或 SELinux,需要允许 SSH 访问。
  • 在 Jenkins Pipeline 或自动化脚本中,可直接使用免密 SSH/SCP 执行远程操作,无需再输入密码。

通过以上步骤,无论是 Linux 还是 Windows,都可以安全地配置免密访问 CentOS,实现自动化部署和远程管理。

发表回复