管理多个rsa密钥(git,web服务器)

时间:2016-07-12 02:18:28

标签: git ssh rsa

我正在学习如何使用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 
$

2 个答案:

答案 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不允许我发布两个以上的超链接,这就是为什么我非常规地形成了三个超链接。