use*_*755 31 git ssh repository git-remote
我搜索了一会儿,但我无法找到解决问题的方法.
我有一个服务器,我可以通过ssh连接到用户名git
和本地git存储库.
现在我想将本地存储库推送到服务器上新创建的存储库.
这是我做的:
/home/git/test.git
git remote add test ssh://git@serverIp:/home/git/test.git
git push test master
我总是得到
fatal: could not read from remote repository
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我正在使用本地Windows 7机器,并希望上传到Linux服务器.
我可以通过ssh与git
用户登录.我也尝试以root
相同的结果作为用户(使事情工作一次).
我永远不会被问到ssh password
.
我真的不知道我做错了什么.
在你称之为副本之前,我搜索了很多这个问题,似乎没有人谈论同样的问题.
更新:
'C:\ Program Files(x86)\ PuTTY\plink.exe''-batch''git @ serverIp''git-receive-pack'\''/ home/git/test.git'\'''致命:无法从远程存储库读取.请确保您具有正确的访问权限并且存储库存在.
Von*_*onC 17
在这种情况下,使用openssh over putty是关键.
原始答案(调试提示)
我可以通过ssh与
git
用户登录.
这意味着这有效:
ssh git@serverIp
Run Code Online (Sandbox Code Playgroud)
你确实有一个HOME
变量,并且有ssh公钥/私钥(id_rsa
/ id_rsa.pub
)%HOME%/.ssh/
.
这个问题暗示了一个不同的网址:
git remote set-url test git@serverIp:/home/git/test.git
Run Code Online (Sandbox Code Playgroud)
确保你确实创建了git repo作为git(而不是root用户,当你创建git帐户时,就像在这个问题中一样).
ssh git@serverIp "which git"
应该返回git可执行文件的路径.
还要检查所有父目录是否x
为运行的用户git
或组设置了相关(执行)位.
此外,获取git命令的更多信息可以通过以下方式完成:gitgroup
ls -ld /home /home/git /home/git/test.git
git push --verbose
GIT_TRACE=2 git push test master
如果你有一个带有密码的私有ssh密钥,最好首先使用没有密码保护的私有ssh密钥测试这些ssh命令,看看问题是否仍然存在.
或者,您可以保留受密码保护的ssh密钥,但请仔细检查您的.bashrc
答案.
对于任何ssh连接问题(需要git的密码),请检查:
/var/log/auth.log
, 在你的情况下,因为它与ssh git@serverIp
(交互式安全shell)一起使用,但不与git(打开一个非交互式安全shell)一起工作,看看这个引用这个的线程:
使用命令行启动ssh时,将启动非交互式非登录shell.
但是...... 在这种情况下bash
不使用$BASH_ENV
,因此将其设置~/.ssh/environment
(例如/etc/profile
)也无济于事.
bash的作用是来源/etc/bashrc
和~/.bashrc
.
确保/etc/profile
确实定义了路径git
,因为这里可以使用非登录帐户(这似乎是这里的情况,因为ssh git@serverIp "which git"
工作,也ssh git@serverIp "git --version"
应该).
还要检查权问题,并测试chmod 755
上/home
,/home/git
和/home/git/test.git
.
我个人有两个不同的问题:
plink
(在Windows上由git使用)不接受id_rsa
私钥,因为它是OpenSSH 2格式=>我必须将它(使用puttygen
)转换为PuTTY自己的.ppk
格式并通过Git Extensions" Remotes
"对话框附加
我错误地指定了git文件夹的路径,'因为我的ssh会话被chrooted(这可能是错误的单词),我指定什么是我的FTP" root
"作为" /
",而它是" /home/www/username/
"而不是.
我理解了这一切,使用GIT TRACE=2
如上所述,并通过使用procmon
确定命令行plink
,然后使用它,添加" -v
"选项("详细").
您还可以通过执行以下操作来检查SSH身份:
$ ssh-add -L
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题.我的身份中有一个错误的钥匙,不记得原因.我只是删除了我的所有身份(也许你需要再次添加密钥):
$ ssh-add -D
Run Code Online (Sandbox Code Playgroud)
然后我没有问题地推/拉.
归档时间: |
|
查看次数: |
85422 次 |
最近记录: |