abb*_*ood 5 git ssh github bitbucket
我确定我们都会不时收到此错误:
$ git push origin master
Permission denied (publickey).
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)
典型的补救方法是简单地创建一个公钥/私钥对,并与您的git主机(在我的情况下为bitbucket,及其指示)共享它
事实是,我有很多账户都要求我有一个公共/私有密钥对(例如,我需要保存一个密钥才能连接到AWS ..等)..所以我要做的就是创建这些密钥并将它们保存在单独的目录中,即
~/.ssh $ find .
./awskeys
./awskeys/id_rsa
./awskeys/id_rsa.pub
./bitbucket
./bitbucket/id_rsa
./bitbucket/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
但是然后不时弹出此错误..要解决它,我必须将相关密钥移回根目录〜/ .ssh。这对我来说似乎不对。我怎样才能可靠地做到这一点?
您可以在任何位置使用它们,但是它们的权限和父文件夹的权限必须严格:
然后是你:
~/.ssh/config(此处为示例)~/.ssh/config描述正确的ssh键使用的文件的适当条目。这意味着像这样的条目:
Host mygithub
User git
IdentityFile ~/.ssh/mypath/mykey # wherever your "new" key lives
IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)
允许您将git@github.com:username / repo之类的网址替换为:
git remote set-url origin mygithub:username/repo
Run Code Online (Sandbox Code Playgroud)