嘿嘿只需要配置好一个服务器,其他服务器可以复用这个配置来访问,以下步骤以「200 服务器(源服务器)」→「120 服务器(目标服务器)」为例,核心是把 200 服务器上 GitHub 免密登录的私钥,迁移到 120 服务器并配置免密访问:
先登录 200 服务器,执行以下命令查看当前连接 GitHub 用的私钥路径:
# 调试模式连接 GitHub,查看实际使用的密钥文件
ssh -vT git@github.com
# 重点看输出里的这一行(核心关键),示例输出如下:
Offering public key: /home/devuser/.ssh/id_rsa # 这就是当前用的私钥文件补充检查:如果配置过 ~/.ssh/config,需确认是否显式指定了 GitHub 的密钥:
cat ~/.ssh/config
# 若有 GitHub 专属配置,会看到类似内容:
Host github.com
User git
IdentityFile ~/.ssh/id_ed25519 # 显式指定的密钥文件假设 200 服务器上查到的私钥是 /home/devuser/.ssh/id_rsa,执行 scp 复制到 120 服务器
# 从 200 服务器执行,复制私钥到 120 服务器(命名为 id_rsa_github 便于区分)
scp /home/devuser/.ssh/id_rsa root@172.20.26.120:/root/.ssh/id_rsa_github
# 登录 120 服务器后,必须修正密钥权限(SSH 对权限要求严格,否则会失效)
ssh root@172.20.26.120 # 登录 120 服务器
chmod 600 /root/.ssh/id_rsa_github # 私钥必须 600 权限
chmod 700 /root/.ssh # .ssh 目录必须 700 权限编辑 120 服务器的 ~/.ssh/config 文件,指定 GitHub 专用密钥:
# 120 服务器上执行,编辑 config 文件
vim /root/.ssh/config
# 粘贴以下内容(核心:指定 GitHub 用的密钥)
Host github.com
User git
IdentityFile /root/.ssh/id_rsa_github # 对应复制过来的私钥路径
IdentitiesOnly yes # 强制使用指定的密钥,避免优先使用其他密钥导致失败执行测试命令,验证是否配置成功:
ssh -T git@github.com
# 成功的标志:输出类似以下内容(@后是你的 GitHub 用户名)
Hi your-github-username! You've successfully authenticated, but GitHub does not provide shell access.cat /home/devuser/.ssh/id_rsa.pub 复制公钥;Permission denied (publickey),检查:id_rsa_github 权限是否为 600(必选);config 文件中 IdentitiesOnly yes 是否配置(避免密钥冲突);#git