我想使用多个私钥连接到不同的服务器或同一服务器的不同部分(我的用途是服务器的系统管理、Git管理和同一服务器中的正常Git使用)。我尝试简单地将密钥堆叠在id_rsa文件中,但没有用。
显然,要做到这一点,一个简单的方法是使用命令
ssh -i <key location> login@server.example.com
这很麻烦。
有什么建议可以让你做这件事更容易一些吗?
我想使用多个私钥连接到不同的服务器或同一服务器的不同部分(我的用途是服务器的系统管理、Git管理和同一服务器中的正常Git使用)。我尝试简单地将密钥堆叠在id_rsa文件中,但没有用。
显然,要做到这一点,一个简单的方法是使用命令
ssh -i <key location> login@server.example.com
这很麻烦。
有什么建议可以让你做这件事更容易一些吗?
当前回答
我曾经遇到过这个问题,当时我有两个Bitbucket帐户,想要为两个帐户存储单独的SSH密钥。这对我来说很管用。
我创建了两个单独的ssh配置,如下所示。
Host personal.bitbucket.org
HostName bitbucket.org
User git
IdentityFile /Users/username/.ssh/personal
Host work.bitbucket.org
HostName bitbucket.org
User git
IdentityFile /Users/username/.ssh/work
现在当我必须从我的工作帐户克隆一个存储库时,命令如下所示。
git clone git@bitbucket.org:teamname/project.git
我必须修改这个命令:
git clone git@**work**.bitbucket.org:teamname/project.git
同样,从我的个人帐户克隆命令必须修改为
Git克隆git@personal.bitbucket.org:name/personalproject.git
更多信息请参考这个链接。
其他回答
GitHub上的多个键对
1.0 SSH配置文件
1.1创建~/.ssh/config
1.2 chmod 600 ~/。ssh / config(必须)
1.3在文件中输入如下内容:
主机披萨 主机github。com 选择公共关系 IdentityFile ~ / . ssh / privatekey1
案例A:全新的Git克隆
使用此命令克隆Git:
$ git clone git@pizza:yourgitusername/pizzahut_repo.git
注意:如果以后要更改.ssh/config的主机名“pizza”,进入Git克隆文件夹,编辑.git/config文件URL行(见case B)
情况B:已经有Git克隆文件夹
2.1进入克隆文件夹,进入“。git”文件夹
2.2编辑配置文件
2.3将URL从*old更新为new:
(Old) URL = git@github.com:yourgitusername/pizzahut_repo.git
(New) URL = git@pizza:yourgitusername/pizzahut_repo.git
我同意Tuomas使用ssh-agent。我还想为工作添加第二个私钥,这个教程对我来说非常有效。
步骤如下:
$ ssh-agent bash $ ssh-add /path。到/private/key,例如ssh-add ~/.ssh/id_rsa 通过$ ssh-add -l验证 使用$ssh -v <主机url>例如ssh -v git@assembla.com进行测试
ssh-add ~/.ssh/xxx_id_rsa
请确保在添加之前进行测试:
ssh -i ~/.ssh/xxx_id_rsa username@example.com
如果你有任何错误的问题,有时改变文件的安全性有助于:
chmod 0600 ~/.ssh/xxx_id_rsa
您可以尝试这个sshmulti npm包来维护多个SSH密钥。
对密钥使用ssh-agent。