配置多个ssh-key

背景

因为业务原因需要配置多个ssh-key来用不同的账号连接不同的远程库

概述

就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA(一种加密算法)来完成这个操作

具体方法
  1. 先执行以下命令来判断本地是否已有公钥
$ cat ~/.ssh/id_rsa.pub

如果没有的话按你要设置ssh的网站说明操作即可,如果已有的话那这就是本次要讲解的地方了。(出现ssh-rsa打头的一长串字符就说明已存在)

  1. 输入以下命令创建你想要增加的ssh-key文件, 如下图会自动为你创建一个私钥和一个公钥文件
$ ssh-keygen -t rsa -C "[email protected]" -f "aliyun_id_rsa"
// -t 是你要加密的类型,可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)。
// -C是你要提示的注释,会出现在公钥文件的末尾,就是.pub后缀的那个文件(如果你用的sourcetree的话最好和sourcetree中配置的邮箱一样,否则会报错)
// -f 是你要创建的文件的名字,必须设置,这样才不会覆盖已有的文件
image.png
  1. 然后需要创建一个config文件来管理多个ssh-key
$ touch config     //没有后缀
  1. 在 config中写入以下代码
#github
Host github.com  // 主机名,即域名
Port 2323         // 默认端口是22,如无特殊配置可不设
HostName github.com  // 主机名
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa   // 公钥的文件路径

#aliyun
Host aliyun.com
HostName aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/aliyun_id_rsa
  1. 进行ssh设置 (即把生成的公钥文件中的代码填入你的网站中)
    此步骤很关键如果没有将会报Permission defined (publickey)错误

  2. 测试

$ ssh -T [email protected]  // @后面域名需与你在配置文件中填入的主机名一致

输出此字样说明连接成功


image.png

你可能感兴趣的:(配置多个ssh-key)