title: 配置多个ssh
tag:
- linux
- 工具
刚到公司是没有再重新配置ssh,导致了自己的github和公司gitlab提交的混乱。
这种情况我们可以分情况配置ssh
- 分别生成gitlab和github的ssh-key
$ ssh-keygen -t rsa -C "youremail@yourcompany.com" -f ~/.ssh/gitlab-rsa
在~/.ssh/目录会生成gitlab-rsa私钥和gitlab-rsa.pub公钥。 我们将id-rsa.pub中的内容粘帖到公司gitlab服务器的SSH-key的配置中。
$ ssh-keygen -t rsa -C "youremail@your.com" -f ~/.ssh/github-rsa
在~/.ssh/目录会生成github-rsa私钥和github-rsa.pub公钥。 我们将github-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。
在创建ssh-key的时候会有提示
Enter passphrase (empty for no passphrase):
//输入密语,可以为空
Enter same passphrase again:
//再次输入确认
-
将密钥加入到ssh-agent
ssh-agent是用于管理密钥,通过ssh-add命令将两个将密钥加入到ssh-agent中,SSH可以和ssh-agent通信获取密钥,这样就不需要手工输入密码了。
$ ssh-add ~/.ssh/gitlab-rsa $ ssh-add ~/.ssh/github-rsa
如果运行
ssh-add
命令,遇到“Could not open a connection to your authentication agent.”提示。需要ssh-agent启动bash,运行以下命令,然后再重新执行
ssh-add
命令$ ssh-agent bash
-
创建并编辑config文件
$ cd ~/.ssh/ $ touch config
在config中写入,并保存
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab-rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github-rsa # 配置文件参数 # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 # HostName : 要登录主机的主机名 # IdentityFile : 指明对应的identityFile路径
-
测试是否生效
$ ssh git@github.com
出现以下提示即为成功
The authenticity of host 'github.com (192.30.253.112)' can't be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)? //输入yes,按回车 Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts. Permission denied (publickey).
# flag-api
git remote remove origin
git remote add origin git@code.aliyun.com:546405040/flag-api.git
git push --set-upstream origin master #第一次可能需要
# xl
git remote remove origin
git remote add origin git@code.aliyun.com:546405040/xl.git
git push --set-upstream origin master #第一次可能需要
gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github-rsa
zeno
Host 47.52.30.225
HostName 47.52.30.225
PreferredAuthentications publickey
IdentityFile ~/.ssh/zeno-rsa
#User git
阿里
Host code.aliyun.com
HostName code.aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitali-rsa
配置文件参数
Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
HostName : 要登录主机的主机名
User : 用户名
IdentityFile : 指明对应的identityFile路径
今天处理 ssh连接至 ubuntu 服务器时,提示以下错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:******.
Please contact your system administrator.
Add correct host key in /用户home目录/.ssh/known_hosts to get rid of this message.
Offending RSA key in /用户home目录/.ssh/known_hosts:1
RSA host key for ip地址 has changed and you have requested strict checking.
Host key verification failed.
经过google,出现这个问题的原因是,第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中。
可使用以下指令查看:
ssh-keygen -l -f ~/.ssh/known_hosts
由于服务器重新安装系统了,所以会出现以上错误。
解决办法
ssh-keygen -R 服务器端的ip地址
会出现以下提示:
Host 192.168.3.10 found: line 1 type RSA
/用户home目录/.ssh/known_hosts updated.
Original contents retained as /用户home目录/.ssh/known_hosts.old
push
重新连线,出现以下提示:
The authenticity of host '192.168.3.10 (192.168.3.10)' can't be established.
RSA key fingerprint is da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:****.
Are you sure you want to continue connecting (yes/no)?
输入yes确认即可连线成功。
作者:GkFool
链接:https://www.jianshu.com/p/04328ed5970e