如何在linux/ubuntu上管理多份ssh私钥private key

前言

ssh是目前很多网络应用采用的链接方式。
发送端需要用私钥private key对发送数据进行加密,然后接收端用公钥进行解密。
目前经常用git参与多个项目,则会管理多份私钥。

弊端

id_rsa 私钥文件只有一份,如果采用备份,覆盖的方式切换多个项目是不方便的。
笔者根据 http://stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private-keys-on-one-client 操作了一遍。

以DXXX项目为例

  • 将dxx提供的my_name.key私钥放入~/.ssh/,改名为id_rsa_dxxx
  • chmod 600 id_rsa_dxxx
  • 创建文件config,写入如下内容。


Host,HostName,User 根据具体情况填写。

Host dxxx.com
HostName dxxx.com
IdentityFile ~/.ssh/id_rsa_dxxx
User git


注意, IdentityFile ~/.ssh/id_rsa_dxxx中的~/.ssh/不能省掉。笔者想到config文件在~/.ssh下就剩了,结果出错。也说明私钥可以放在任何可以访问的地方。不一定是~/.ssh目录下。

  • 发起连接。通常到这步就完了,因为dxxx再发给我之前的私钥进行了加密,所以还要输入一次dxxx提供的密码。
$ git clone ssh://[email protected]:22/home/git/git-repo/de/libs.git
Cloning into 'libs'...
Enter passphrase for key '/home/xxx/.ssh/id_rsa_dxxx':
  • 切换到其他项目的目录,进行git pull/push 操作,不受影响。

发布了27 篇原创文章 · 获赞 2 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/wlia/article/details/42234359