我有一个Bitbucket repo,我可以通过它来拉动和推送HTTPS。 现在,我尝试将HTTPS更改为SSH。
我在本地创建了一个SSH密钥对,并且已将公钥添加到Bitbucket。
我已按以下方式设置遥控器:
git remote set-url origin git@my-repo.com:7999/my-project.git
然后,当我git pull
时,我要求我的密码三次,然后我被拒绝许可:
Password:
Password:
Password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我有两个问题:
1.如果我使用SSH,为什么要求输入密码?(我在创建SSH密钥时没有设置密码)
2.为什么我无法连接到服务器?
答案 0 :(得分:1)
您已将私钥添加到ssh.agent.exe
您没有告诉我们您的环境。
这就是我每天使用ssh密钥的方式。
为我的ssh-add所在的位置设置别名。这只是让一切都很美好。
Set-Alias ssh-add "C:\Program Files\Git\usr\bin\ssh-add.exe"
启动SSH代理 - 为您的ssh密钥提供服务
Start-SshAgent -Quiet
将您的私钥添加到会话中
ssh-add C:\Users\username\.ssh\privateKey
多数人。
我在我的$ profile中为windows上的powershell运行这三个命令。
答案 1 :(得分:0)
此URL通过标准端口22解析为SSH,路径为7999.端口22上的SSH服务器很可能不会授权您的git公钥。
[user@]host.xz:path/to/repo.git/
请注意,没有端口空间。
完整的SSH语法是
ssh://[user@]host.xz[:port]/path/to/repo.git/
应允许您连接到正确的SSH端口。
我经常更喜欢在我的.ssh/config
中添加一个条目,指定服务器详细信息:
Host git
HostName git.example.net
User git
Port 7999
PasswordAuthentication no
然后我可以使用git:path/to/repo.git/
的简短语法。
答案 2 :(得分:0)
检查您的公钥的权限。你是先拉它吗? 时间,那么你的钥匙需要有一定的特权。
您已将密钥文件找到保存在窗口中的位置。
设置,查看,更改或删除文件和文件夹的权限
要为未出现在“组或用户名”框中的组或用户设置权限,请单击“添加”。键入要为其设置权限的组或用户的名称,然后单击“确定”。
要更改或删除现有组或用户的权限,请单击该组或用户的名称。
执行以下操作之一: - 要允许或拒绝权限,请在“权限”框中选中“允许”或“拒绝”复选框。
有关详细信息,请查看此链接以设置权限: https://msdn.microsoft.com/en-us/library/bb727008.aspx