t0m*_*mgs 36 git ssh bitbucket
我正在https://www.bitbucket.com上的私人存储库中开展项目.
我在本地进行编码,然后通过BitBucket的Windows Git客户端Sourcetree进行升级,提交和推送更新.
之后,我从远程共享服务器中提取文件,这需要SSH身份验证.
为了将git repo与bitbucket帐户连接,我尝试了以下操作:
C:/Project
.git init
初始化存储库.git push -u origin --all
将repo从我的计算机推送到BitBucket.Permission denied (publickey).
ssh -Tv git@bitbucket.org
- 仍然,Permission denied
.我试图找出究竟出了什么问题 - 它是否找到了我的SSH密钥?密钥是否未加载到特定位置?
注意:我在BitBucket上的配置文件中加载了公钥.
Mah*_*raa 82
对于新的Sierra,在Mac上可能有同样的问题.解决方案是通过以下方式将私钥添加到SSH代理:
ssh-add -K ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
看起来身份[id_rsa]不会被SSH代理持久化.
请注意,这不是一个永久的解决方案.每次克隆新存储库时都需要这样做.至少不需要为每次推送提供私钥到远程.
--------更新28.Sep.2017 --------
永久解决方案(On Sierra):
脚步:
1-在执行任何操作之前,请确保在后台运行ssh-agent.
要检查ssh-agent是否正在运行:
pgrep 'ssh-agent'
Run Code Online (Sandbox Code Playgroud)
如果该进程正在运行,该命令将返回该进程的PID(ProcessID).如果您看到一个值..转到步骤#2.如果没有,那么你需要在后台运行该代理:
eval "$(ssh-agent -s)"
Run Code Online (Sandbox Code Playgroud)
2-编辑~/.ssh/config
(如果不存在则创建su
):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
3-然后添加该密钥代理(即一次):
ssh-add -K ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
而已.
实际上,步骤#2是至关重要的一步.我只是想提供一个完整的指南.
我希望这可以帮到你.'
Apc*_*ite 17
我需要进一步修改这些设置SourceTree:
Fré*_*duc 10
我知道这已经解决,但是要添加到已接受的答案中,您实际上并不需要Git Bash才能使其正常工作.正如Cupcake所说,PuTTY确实.ppk
为私钥提供了文件,这些文件在普通的PuTTY/Pageant上下文之外是不可行的.
这是因为终端预计在默认情况下找到一个文件名为id_rsa
中~/.ssh
和腻子未生成默认.但Git Bash ssh-keygen
确实如此,这就是Tom Granot的解决方案有效的原因.但是,您可以通过PuTTY密钥生成器通过Conversions/Export OpenSSH Key...
菜单中的选项导出相同的文件.请务必将其命名id_rsa
并将其放在id_rsa.pub
文件旁边,一切都应该正常工作.
好吧 - 我经过多次试验和错误后找到了解决方案.显然,使用PUTTY的keygen并将新公钥存储在我的.ssh
文件夹中不起作用.但是,使用ssh-keygen
IN GIT BASH,然后尝试使用新生成的密钥对登录,工作得很好.出于好奇,虽然比什么都重要 - 我很想知道为什么会这样.
这是一个老问题了,但每次 MacOS 更新时,我都会遇到这个问题。卡塔利娜也不例外。
首先,您应该检查您的配置文件以确认您的旧密钥是否仍然存在......它应该:
~ ls -al ~/.ssh
Run Code Online (Sandbox Code Playgroud)
然后您必须按上面列出的名称再次添加您的密钥:
~ ssh-add -K ~/.ssh/[key-name]
Run Code Online (Sandbox Code Playgroud)