当我直接登录到我的机器时,我可以执行所有 git 操作,并且当提示输入密码时,密码会被接受。当我通过 ssh 进入同一个机器并在同一个存储库上运行 git 操作时,密码会被拒绝。
.ssh/config 的相关部分如下所示:
# Generic settings
Host *
ServerAliveInterval 600
ControlPath /tmp/ssh-%r@%h:%p
ControlMaster auto
KeepAlive yes
IdentityFile ~/.ssh/id_rsa.pub
当我通过 ssh 登录到我的盒子时,交易看起来是这样的:
{12-12-03 9:41}hbrown-wks2:~/workspace/spt/project@master✗✗✗ hbrown% git pull
Enter passphrase for key '/home/hbrown/.ssh/id_rsa.pub':
Enter passphrase for key '/home/hbrown/.ssh/id_rsa.pub':
Enter passphrase for key '/home/hbrown/.ssh/id_rsa.pub':
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
使用 bash 似乎没有什么区别(即ssh-agent /bin/bash
)。
这是最近的发展,但我无法指出导致这一变化的原因。
答案1
您指的是密码短语(与公钥加密一起使用)还是密码?甚至不会要求您输入密码。如果您除了密码短语之外还希望接受密码,您可能需要类似以下内容:
PreferredAuthentications 公钥,键盘交互,密码
在你的ssh_配置。
此外,IndentityFile 不是应该是私钥而不是公钥吗?