我有一个在远程服务器上使用Git的项目。我为Mac安装了SourceTree来管理它。我还在根目录中有一个带私有的.ssh文件夹,我保存所有项目,公钥在服务器中。
我能够成功克隆项目,甚至提交+推回它没有问题。然后我在我的本地仓库中停止了一个分支,添加了一个新文件并尝试提交+推送它。它已提交,但推送失败,出现以下错误消息。
Pushing to git@gitserver:gitbtest
ssh: Could not resolve hostname gitserver: nodename nor servname provided, or not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我不确定为什么会这样。有没有办法在SourceTree for Mac中设置SSH密钥?我似乎无法找到任何选择。
任何解决此问题的帮助都会很棒。
谢谢!
答案 0 :(得分:3)
git@gitserver:gitbtest
之类的网址只有在拥有ssh配置文件才能解析名称gitserver
时才能生效:
$HOME/.ssh/config
Host gitserver
Hostname xxx.xxx.xxx.xxx # IP or full name for gitserver
User git
IdentityFile ~/.ssh/id_rsa
实际上,使用这样的文件,您甚至不必指定用户:
git remote set-url origin gitserver:gitbtest
(您可以看到“git public key for more repositories”中使用的~/.ssh/config
文件的示例。)