使用git的ssh

一、前言

之前一直在使用https来push仓库,缺点是每次都需要输入账号和密码。使用ssh的话,可以不输入密码。

二、使用

  • 单个ssh
    仅仅使用github作为远程仓库服务器,那么只需要一个ssh即可。
    生成ssh:

    ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  -f ~/.ssh/github_id_rsa
    

    使用上述命令,会在目录~/.ssh(windows在C:/Users/admininstrator/.ssh/)中生成两个文件:github_id_rsa和github_id_rsa.pub,分别保存私钥和公钥。

    查看公钥:

    cat ~/.ssh/github_id_rsa.pub
    

    上面命令查看github_id_rsa.pub文件的内容,输出公钥,复制该公钥

    打开github添加ssh公钥:
    GIF.gif
    在key中粘贴刚才复制的公钥,title随意填写。

    查看链接是否成功:

    ssh -T git@github.com
    

    返回含successfully单词的语句,表示链接成功。

    使用ssh push/pull仓库:
    进入一个仓库,克隆仓库ssh
    GIF.gif

    然后,在添加远程仓库时,使用这个ssh

    git remote add github '刚刚复制的ssh'
    

    这样,就可以使用ssh进行push/pull了。

  • 多个ssh
    当既使用多个git的远程服务器时,比如码云、github。这时,需要管理多个ssh。
    生成公钥

    ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  -f ~/.ssh/gitee_id_rsa
    ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  -f ~/.ssh/github_id_rsa
    

    这里的重点在于,将公钥保存在不同的文件中,即区分二者。
    查看公钥

    cat ~/.ssh/github_id_rsa.pub
    cat ~/.ssh/gitee_id_rsa.pub
    

    在远程服务器(码云、github)中添加公钥(略)

    配置config
    在~/.ssh(windows在C:/Users/admininstrator/.ssh/)目录下新建一个config文件(不含扩展名)。在文件中,添加下面内容:

    # gitee
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitee_id_rsa
    
    # github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id_rsa
    

    检查连接是否成功

    $ ssh -T git@gitee.com
    $ ssh -T git@github.com
    

    同时,在.ssh目录下回生成know_hosts文件来区分不同的ssh
    使用ssh来push和pull(略)

提示:单个ssh和多个ssh的配置步骤并没有太大区别,不同是多个ssh时,需要添加一个config文件来区分ssh。

posted @ 2018-10-26 22:05  web_小隆  阅读(174)  评论(0编辑  收藏  举报