我正在使用(相对)新的Git sshCommand:
git config core.sshCommand 'ssh -i ~/Documents/keydir/key.pem'
这导致以下配置:
sshCommand = ssh -i ~/Documents/keydir/key.pem
但是当我尝试推送到服务器时(顺便说一句,我正在使用主目录。是否必须是www目录?)
[remote "origin"]
url = ssh://ubuntu@myserver.com:22/home/ubuntu/myrepo.git
或
[remote "origin"]
url = ssh://ubuntu@myserver.com/home/ubuntu/myrepo.git
它返回:
git push remote master
fatal: 'remote' does not appear to be a git repository
fatal: Could not read from remote repository.
...错误。
无法弄明白。
我尝试过使用“〜/ myrepo.git”和“/home/ubuntu/myrepo.git”,我也试过“url = ssh://ubuntu@myserver.com:/ home / ubuntu / myrepo.git“
我也尝试在/ var / www文件夹中启动一个新的git ...
似乎没什么用。并且myrepo.git肯定存在于ubuntu主文件夹中。
有什么想法吗?
编辑:我的完整.git / config文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
sshCommand = ssh -i ~/Documents/keydir/key.pem
[remote "origin"]
url = ssh://ubuntu@myserver.com:22/home/ubuntu/mygit.git
fetch = +refs/heads/*:refs/remotes/origin/*
编辑:将本地(2.5.4)和远程(2.7.4)版本的Git更新到最新版本(2.16.1)解决了这个问题。
答案 0 :(得分:0)
我相信您的git push
命令(“git push remote master
”)不正确。
请尝试使用git push origin master
。
(您可能还需要验证myrepo.git
文件实际上是git repo,由git命令初始化。您指定的URL似乎遵循the docs中指定的正确格式。)
答案 1 :(得分:0)
首先需要检查是否可以ssh到该服务器:
ssh -Tv -i ~/Documents/keydir/key.pem ubuntu@myserver.com
换句话说,您必须确保~ubunutu/.ssh/authorized_keys
文件的key.pub public 键。
然后命令必须是:
git push -u origin master
这只是您第一次推送该分支:请参阅“Why do I need to explicitly push a new branch?”
URL正确:添加或删除端口22无关紧要,因为它是默认的SSH端口。
作为per discussion,两端(本地和远程)使用相当旧版本的Git(MacOS上为2.5.4,Ubuntu上为2.7.4)。 升级它们都有帮助。