我正在运行 GoDaddy 服务器。我按照以下步骤进行 ssh 操作。
- 在Godaddy上创建ssh密钥并授权给他们。
- 已保存的公钥注:我的公钥名称是
test
- 使用 putty 登录
现在的问题是我已经登录到我的 public_html/test 目录中的服务器
在这里我初始化了我的 git,但每当我尝试拉取它时,它都会拒绝权限
eval $(ssh-agent -s)
ssh-add ~/.ssh/test
完成此操作后,它允许我从 git repo 中提取,但我必须一次又一次地添加它。我甚至已将其添加到我的授权密钥中,但它不起作用。
有什么方法可以永久添加这个密钥吗?
答案1
您可以将 SSH 代理移至您的 PC 并使用代理转发,或者根本不使用 SSH 代理。
使用 PC 上的 SSH 代理和代理转发,而不是服务器上的 SSH 代理
您可以将用于访问 Git 的 SSH 私钥存储在您的 PC 上(而不是在您的服务器上),并使用 SSH 代理转发。
SSH 代理转发是 SSH 的一项功能,它允许通过 SSH(PuTTY)连接从您的 GoDaddy 服务器访问您 PC 的 SSH 代理。使用 SSH 代理转发,您无需在不同的机器上启动单独的 SSH 代理,只需启动一次,然后将其“转发”到您想要使用 SSH 密钥的任何机器。
Pageant 是 PuTTY 套件附带的 SSH 代理实现。
设置方法:
- 在 Windows PC 上启动 Pageant(将链接放入“启动”文件夹,以便在登录 Windows 时自动启动它)
- 将用于访问 Git 的 SSH 私钥添加到 Pageant
- 在 PuTTY 中,编辑 GoDaddy 服务器的已保存会话:选中“允许代理转发”(在连接 -> SSH -> 身份验证下)
- 使用您刚刚调整的会话配置,使用 PuTTY 连接到您的 GoDaddy 服务器
- 确认 SSH 代理转发现在有效:
ssh-add -l
在 GoDaddy 服务器上运行
PuTTY文档中的相关部分:
使用 Git 进行 SSH 公钥认证,但没有 SSH 代理
SSH 客户端(包括 Git)将默认查找密钥~/.ssh/id_rsa
,~/.ssh/id_dsa
如果您将您的私钥和公钥重命名为~/.ssh/id_rsa
和~/.ssh/id_rsa.pub
(rsa
如果不是 RSA,则替换为您使用的密钥类型)。,您git
应该直接尝试这些 - 而不需要ssh-agent
。