ssh 密钥意外传输到我自己的计算机
ssh key gets unexpectedly transfered to my own computer
我有一台开发机器“笔记本电脑”,这里我有一个用于我在 Bitbucket 中的 git 帐户的 SSH 密钥。我还有一个生产服务器“服务器”,我不想在其中使用此密钥,而是想在 Bitbucket 中使用另一个具有只读权限的密钥。
我预期的工作流程是使用 SSH 登录服务器,然后我会 运行 git pull
。它工作得很好。但是,当我注销并尝试从笔记本电脑执行 git push
时,推送被拒绝,因为我没有写权限。使用 GIT_SSH_COMMAND="ssh -vv" git push
和 ssh-add -l
,我发现,如果我在服务器上添加只读 SSH 密钥,它也会出现在我的笔记本电脑上,所以当我推送时,只读密钥是用过的。当我使用 ssh-add -D
从笔记本电脑中删除它时,它在服务器上也不再可用。所以看起来当我登录到服务器时,SSH 代理总是使用我的笔记本电脑配置。
我该如何防止这种情况发生?当我登录到服务器时,我想使用服务器的只读 ssh 密钥,当我在笔记本电脑上时,我想使用我个人的 ssh 密钥。
我尝试将 /etc/ssh/ssh_config
更改为包含
Host bitbucket.org
ForwardAgent no
但这对我没有帮助。
我尝试寻找其他问题,但每个人都有相反的问题,他们正在尝试同步密钥,所以我找不到答案。
感谢任何提示。
你试过了吗IdentityFile /path/to/key
?
顺便说一句,您不应该更新 /etc/ssh/ssh_config
,创建 ~/.ssh/config
是一个更好的选择(并推荐)。
此外,您应该在“服务器”和“笔记本电脑”上使用不同的配置。
我有一台开发机器“笔记本电脑”,这里我有一个用于我在 Bitbucket 中的 git 帐户的 SSH 密钥。我还有一个生产服务器“服务器”,我不想在其中使用此密钥,而是想在 Bitbucket 中使用另一个具有只读权限的密钥。
我预期的工作流程是使用 SSH 登录服务器,然后我会 运行 git pull
。它工作得很好。但是,当我注销并尝试从笔记本电脑执行 git push
时,推送被拒绝,因为我没有写权限。使用 GIT_SSH_COMMAND="ssh -vv" git push
和 ssh-add -l
,我发现,如果我在服务器上添加只读 SSH 密钥,它也会出现在我的笔记本电脑上,所以当我推送时,只读密钥是用过的。当我使用 ssh-add -D
从笔记本电脑中删除它时,它在服务器上也不再可用。所以看起来当我登录到服务器时,SSH 代理总是使用我的笔记本电脑配置。
我该如何防止这种情况发生?当我登录到服务器时,我想使用服务器的只读 ssh 密钥,当我在笔记本电脑上时,我想使用我个人的 ssh 密钥。
我尝试将 /etc/ssh/ssh_config
更改为包含
Host bitbucket.org
ForwardAgent no
但这对我没有帮助。
我尝试寻找其他问题,但每个人都有相反的问题,他们正在尝试同步密钥,所以我找不到答案。
感谢任何提示。
你试过了吗IdentityFile /path/to/key
?
顺便说一句,您不应该更新 /etc/ssh/ssh_config
,创建 ~/.ssh/config
是一个更好的选择(并推荐)。
此外,您应该在“服务器”和“笔记本电脑”上使用不同的配置。