当我尝试时,它就ssh -C user@my_server 'cd /home/me/my_repo'
起作用了。当我尝试时ssh user@my_server
,cd /home/me/my_repo'
它就git pull
起作用了。
但是当我尝试时,ssh -C user@my_server 'cd /home/me/my_repo' && git pull
它失败了Permission denied (publickey)
。
我的问题确实是:为什么它甚至在本地也能工作当我这样做时,ssh -C user@my_server 'cd /home/me/my_repo && git pull'
git 是否会关心我用于连接 my_server 的 ssh 密钥,而不仅仅是用于连接 my_repo 的远程的 ssh 密钥?
答案1
SSH 默认会使用目录中的密钥.ssh
。这通常在 中~/.ssh/
。
看来您编写的以下命令可能是拼写错误:
ssh -C user@my_server 'cd /home/me/my_repo' && git pull
上述命令将运行 ssh,并在成功完成(退出状态 0)后运行git pull
。我之所以这么说,是因为它可能与您的问题有关,希望能够有所帮助,但又不会太过迂腐。
回答您的问题,git 将默认使用.ssh
运行该命令的机器上的文件夹中的密钥。
因此应尽量在家里使用钥匙user@my_server
。
Git 不知道其所在服务器之外的服务器上的密钥。