说说Git的ssh key

作者: 阳春面 | 来源:发表于2015-06-18 11:16 被阅读2080次

    ssh key的作用

    我们使用ssh登录服务器时,一般常见的会使用用户名/密码方式登录,
    也可以使用ssh key实行免密码登录,一般现在这种方式被Git服务器使用的比较多。

    生成ssh key

    ssh-keygen -t rsa -C "your name"
    

    这样默认会在本地的~/.ssh目录下生成id_rsa,id_rsa.pub两个文件,
    id_rsa是私钥,id_rsa.pub是公钥。

    使用ssh key

    • ssh key方式登录远程服务器
      我们需要把id_rsa.pub拷贝到远程服务器的~/.ssh下面,
      并改名为authorized_keys,这样我们就可以使用key的方式登录了
    $ ssh git@your.server.com
    Enter passphrase for key '~/.ssh/id_rsa':
    

    这样我们输入shh key的密码就可以登录了。

    • ssh key方式使用git clone代码
      如果我们使用的是github/gitcafe, 只需要把id_rsa.pub的内容拷贝出来,
      在github的setting里面添加即可, 我们就可以使用ssh 方式clone代码了。
    //请修改为你自己的git地址
    git clone git@github.com:chenyangcun/mydouban.git
    

    多站点使用不同的ssh key

    默认ssh登录时使用的是id_rsa文件,我们也可以指定其他文件;
    首先我们生成不同的key:

    ssh-keygen -t rsa -C "user1" -f user1
    ssh-keygen -t rsa -C "user2" -f user2
    

    我们生成user1,user2两个不同的ssh key,然后我们在.ssh下创建config文件,
    输入:

    Host company
      HostName company.com
      User git
      IdentityFile ~/.ssh/user1
    
    Host github
      HostName github.com
      User git
      IdentityFile ~/.ssh/user2
    

    这样访问company.com就会使用user1, 访问github.com就会使用user2

    同一站点使用不同的ssh key

    我们有时候需要在同一站点使用不同的ssh key, 比如使用gitcafe的pages服务,
    想要创建两个站点,但是gitcafe上不允许不同的用户使用同一个ssh key,
    我们在config文件里做相应的修改

    Host gitcafe-site1
      HostName gitcafe.com
      User git
      IdentityFile ~/.ssh/user1
    
    Host gitcafe-site2
      HostName gitcafe.com
      User git
      IdentityFile ~/.ssh/user2
    

    然后我们更改git参考的远程地址

    #site1
    $ git remote remove origin 
    $ git remote add origin git@gitcafe-site1:user1/user1.git
    
    #site2
    $ git remote remove origin 
    $ git remote add origin git@gitcafe-site2:user2/user2.git
    

    关键是把gitcafe.com改为gitcafe-site1和gitcafe-site2

    如果使用hexo, 在hexo的config文件中,把deploy的远程地址改成gitcafe-site1这样的形式即可
    deploy:
    type: git
    repo: git@gitcafe-site1:user1/user1.git

    本文出处:http://www.aswifter.com/2015/06/18/git-ssh-key/
    转载请在开头注明本文出处。

    欢迎关注我的微信公众号,分享Swift开发,Android 开发和互联网内容
    微信号:APP开发者

    相关文章

      网友评论

        本文标题:说说Git的ssh key

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