美文网首页
SSH方式连接git----多SSH配置(MAC)

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

作者: springerPrivate | 来源:发表于2018-06-28 21:21 被阅读0次

    问题:

    多个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 

    相关文章

      网友评论

          本文标题:SSH方式连接git----多SSH配置(MAC)

          本文链接:https://www.haomeiwen.com/subject/uopnyftx.html