文章目录
  1. 1. ssh key的作用
  2. 2. 生成ssh key
  3. 3. 使用ssh key
  4. 4. 多站点使用不同的ssh key
  5. 5. 同一站点使用不同的ssh key

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://chenyc.gitcafe.io/2015/06/18/git-ssh-key/


本文出处程序员头条:http://www.iswifting.com/2015/06/18/git-ssh-key详细讲解/
转载请在开头注明本文出处。

欢迎关注本站微信公众号:为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等.并不定期奉送各种福利.
微信公众号猿圈:CodePush

文章目录
  1. 1. ssh key的作用
  2. 2. 生成ssh key
  3. 3. 使用ssh key
  4. 4. 多站点使用不同的ssh key
  5. 5. 同一站点使用不同的ssh key