ssh多主机多key配置
😄

ssh多主机多key配置

Tags
一些小技巧
ssh
Linux
config
Published
Published May 6, 2022
Author
wapeasy
无论登陆vps还是使用vscoderemote功能,都需要用到ssh登陆,但是由于机器多了,配置就变的麻烦了。下面把我遇到的问题整理一下
 
遇到的问题:
  • 家里一台Mac
  • 一个ali的vps
  • 一个学习科学用的vps
  • 公司一台win一台Linux
  • gitee有库
  • GitHub有库
  • 公司内网Gerrit
 
以上的这些都需要使用到ssh进行连接,如果每台机器配置不同的key会很麻烦,所以我的方法是:
  • 每台服务器有唯一的一个key,git库也拥有一个唯一的key
  • 每台客户端PC的.ssh共通,.ssh的目录里面保存所有服务器的私有key和配置文件
 
这样客户端无论怎么变,只要将.ssh目录进行拷贝即可。
 
在配置的过程中遇到了两个问题:
  • 由于ssh key是使用ssh-keygen生成,一些网上老的教程中,key发生迁移后需要使用ssh-add进行添加,但是会有一个文件,add的动作是基于每次ssh-keygen动态实例化才能成功,也就是说需要先ssh-keygen,才能进行ssh-add,简直麻烦到爆炸
  • 由于公司是两台PC,平时都是win使用vscode远程linux进行写代码,编译啥的会用Cygwin sshlinux,但是Cygwin的环境.ssh和win的.ssh位置不一样,想统一起来,结果都指向Cygwin的home,Cygwin ssh到linux的时候很正常,不需要输入密码。但是使用vscode ssh的时候就提示坏的权限,然后需要输入密码。改了好久权限,不是Cygwin不好用,要不就是vscode不好用,简直是日了狗了。 最后放弃了,win放了一份key,Cygwin放了一份key,两处位置的key是相同的,只是拷贝了一遍。
配置其实非常简单,不要被网上的一些教程误导,一些csdn什么的博客里面的,都是这拷贝那拷贝的,乱炒一通,根本没用。
 
只需要在home路径下面的.ssh文件夹中新建一个config的文件,内容:
Host github.com HostName github.com User 你的github用户名 IdentityFile "~/.ssh/github_id_ed25519" Host 192.168.x.x HostName 192.168.x.x User linux主机用户名 IdentityFile "~/.ssh/ubuntu_id_ed25519"
 
🌟:上面的配置,可以写几个都行,上面的是我的举例。有两点需要注意:
  • 如果是vscode的ssh登陆HostHostName需要写IP地址,除非你本地有hosts定向,没有的话,就写IP地址,要不就卡住
  • ed25519不是必须,可以使用rsa