You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更换DigitalOcean SSH无密码私钥,解决GitHub拉取需密码的自动化障碍

解决SSH私钥密码短语重复输入问题

本地登录DigitalOcean服务器免密

用ssh-agent缓存私钥的密码短语,避免每次登录重复输入:

  • 启动ssh-agent:
    eval "$(ssh-agent -s)"
    
  • 将你的私钥添加到agent中(替换成实际私钥文件名,比如id_rsa):
    ssh-add ~/.ssh/your_private_key
    
  • 验证私钥是否添加成功:
    ssh-add -l
    

如果希望每次打开终端自动加载私钥,把以下内容添加到你的shell配置文件(~/.bashrc或~/.zshrc):

# 自动启动ssh-agent并加载私钥
if [ -z "$SSH_AUTH_SOCK" ]; then
  eval "$(ssh-agent -s)"
  ssh-add ~/.ssh/your_private_key
fi

首次启动终端时需要输入一次密码短语,后续终端会话内登录服务器无需重复输入。

服务器端拉取GitHub私有仓库免密

方案1:在DigitalOcean服务器上配置ssh-agent

和本地操作一致:

  • 登录服务器后启动ssh-agent:
    eval "$(ssh-agent -s)"
    
  • 添加GitHub私钥到服务器的agent:
    ssh-add ~/.ssh/your_github_private_key
    

同样可以把启动命令加到服务器的shell配置文件,实现持久化加载。

方案2:SSH代理转发(推荐,无需在服务器存私钥)

通过代理转发,让服务器直接使用本地的ssh-agent,不用在服务器上存储GitHub私钥:

  • 登录服务器时添加-A参数开启转发:
    ssh -A your_username@your_do_server_ip
    
  • 或者修改本地~/.ssh/config文件,配置自动转发:
    Host do-server
      HostName your_do_server_ip
      User your_username
      ForwardAgent yes
    

之后登录服务器只需执行ssh do-server,服务器拉取GitHub私有仓库时会直接使用本地已加载的私钥,无需输入密码。

关键权限检查

确保私钥文件权限符合SSH要求,否则ssh-agent会拒绝加载:

  • 设置私钥权限为600:
    chmod 600 ~/.ssh/your_private_key
    
  • 设置公钥权限为644:
    chmod 644 ~/.ssh/your_private_key.pub
    

内容的提问来源于stack exchange,提问作者Bassel Turky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:47:15