无论登陆
vps
还是使用vscode
的remote
功能,都需要用到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
ssh
到linux
,但是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
登陆Host
和HostName
需要写IP地址,除非你本地有hosts
定向,没有的话,就写IP地址,要不就卡住
ed25519
不是必须,可以使用rsa