SSH方式连接git----多SSH配置(MAC)

2018-06-28  本文已影响0人  springerPrivate

问题:

多个git账号,用SSH方式连接,配置SSH的时候,会存在覆盖问题。

解决:

1.生成rsa

(1)$ ls ~/.ssh 

查看本地是否有rsa,若有且没用,可以删除($ rm -rf ~/.ssh

(2)$ ssh-keygen -t rsa -C your_git_mail -f ~/.ssh/id_rsa_github -b 4096

注:

[1]-C 后填写你git的邮箱 -f后填写rsa的路径 -b后填写rsa的长度(1024 2048 4096)

[2]多个git邮箱要生成多个rsa

[3]rsa会生成两个文件:私钥,公钥(有后缀.pub)

2.添加私钥

(1)$ ssh-add -l

查看ssh-agent中的私钥,若有且无用,则可以删除($ ssh-add -D)

(2)$ ssh-add ~/.ssh/id_rsa_github

将生成的rsa私钥添加到ssh-agent中

3.远程添加公钥

(1)$ cat ~/.ssh/id_rsa_github.pub

查看公钥,然后将公钥拷贝。(也可以通过终端的拷贝命令$ pbcopy < ~/.ssh/id_rsa_github.pub

(2)打开git账号,然后添加公钥。

路径:Settings-->SSH and GPG keys-->New SSH key(有些gitlab的路径不一定一致)

4.config配置

(1)$ vim ~/.ssh/config

配置config

(2)config的设置内容

#github

Host github.com//git的域名

Identityfile ~/.ssh/id_rsa_github//对应私钥文件的路径

IdentitiesOnly yes//防止提供不相关的密钥

User xxx//git的userName

[1]多个git需要多个配置

5.测试

ssh -T git@github.com  

若成功,返回Welcome to xx, 'your username' 

ssh -vT git@github.com  (会返回debug的log)

坑:

Too many authentication failures for git。(git认证失败太多。)

ssh-agent中的rsa有问题

[1]查看rsa $ ssh-add -l

[2]config配置 IdentitiesOnly yes

[3]建议清除ssh-agent中的rsa,然后重新配置。

拓展:

~/.ssh下有个known_hosts的文件。这个文件是记录每个你访问git的公钥。当下次访问git时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

如果多系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告。 

有以下两个解决方案: 

1. 手动删除修改known_hsots里面的内容 (需要每次手动删除文件内容,比较麻烦,但是安全性高)

2. 修改配置文件“~/.ssh/config”,加上这两行。 (SSH连接时会忽略known_hsots的访问,安全性降低)

StrictHostKeyChecking no 

UserKnownHostsFile /dev/null 

上一篇 下一篇

猜你喜欢

热点阅读