我正在学习如何使用git和GitHub。当我'git push origin master'时,它会提示我输入我的GitHub用户并传递组合。因此,设置一个ssh键可以让我的生活更轻松,更方便。我正在使用的指南实际上是一位名叫Jason Taylor的老师的udemy课程。该课程是付费墙后面的,所以我不能真正分享特定的视频。我打开的模块建议输入以下命令:
$ ssh-keygen -t rsa -C "[$user]@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gnull/.ssh/id_rsa):
/home/[$user]/.ssh/id_rsa already exists.
Overwrite (y/n)? n
$
杰森泰勒的udemy课程中的大多数其他学生都会按'y'。这没什么好事的。但对我来说,我已经有一个id_rsa文件,其中包含一个用于我的Web服务器的密钥。所以,如果我输入'y',我将撤销对我的网络服务器的rsa访问权限。 Amiright?
如何保留对Web服务器的ssh密钥访问并建立与GitHub的ssh密钥连接?
以下是我的主文件夹中的.ssh目录的内容:
$ ls
id_rsa id_rsa.pub known_hosts
$
答案 0 :(得分:0)
Enter file in which to save the key (/home/gnull/.ssh/id_rsa):
在此步骤中,您可以输入不同的文件来保存您的ssh密钥对。
在〜/ .ssh / config中,您可以为每个主机(服务器)指定密钥文件(identifyFile)。
Here是多个SSH身份的好教程。
答案 1 :(得分:0)
在谷歌搜索“管理多个rsa密钥”时,最热门的点击是这个(1)堆栈溢出帖子。那篇文章讲述了如何添加和管理多个rsa键,这对我来说并非必要,正如 @Roman 在他的评论中所指出的那样。我在GitHub上找到了一个官方文档(2),它解释了你可以简单地将你现有的私钥或公钥(就像我已经为我的网络服务器建立的那个)复制到我的剪贴板,然后简单地将它添加到GitHub。然后根据另一个GitHub doc(3),您可以通过尝试ssh到GitHub来测试您的ssh连接。这是命令:
$ ssh -T git@github.com
当我输入时,返回了这个:
嗨[$ username]!您已成功通过身份验证,但GitHub不提供shell访问权限。
耶!那很有效。我的密钥设置正确。但我注意到了
$ git push origin master
...仍然提示我输入我的GitHub凭据。我非常喜欢在FreeNode网络的#github上使用irc推荐我尝试:
$ git remote -v
返回了这个:
origin https://github.com/[ $ username] / [$ project-name] .git(fetch)
origin https://github.com/[ $ username] / [$ project-name] .git(push)
注意'https://'?这就是问题所在。解决方案:
$ git remote set-url origin git@github.com: [$ username] / [$ project-name] .git
现在,最后,当我调用时,
$ git push origin master
...它将我的本地更改推送到GitHub而不提示我输入我的用户名并通过。
(1):http:// stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private-keys-on-one-client
(2):https:// help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
(3):https:// help.github.com/articles/testing-your-ssh-connection /
请注意:stackoverflow不允许我发布两个以上的超链接,这就是为什么我非常规地形成了三个超链接。