一、秘钥生成

我是在Windows的gitbase里面操作的。
生成秘钥:
$ ssh-keygen -t rsa -f sample
t 为密码类型
f 为生成的秘钥文件名称
回车键后会让你输入密码,你可以不输,直接按回车到下一步。
ssh-keygen -t rsa -C “your_email@youremail.com”
有些为了方便识别,会以自己的邮箱做标记。
这个是命令输入去执行的结果:

在电脑C:\Users\yourname.ssh会生成对应的私钥和公钥。外来的私钥也可以放这里。
如果你没加名称会生成默认名字:id_rsa和id_rsa.pub。id_rsa为私钥,id_rsa.pub为公钥。打开它,里面是一段字符。
在本例里会生成sample_rsa和sample.pub
$ cd ~/.ssh
进入文件夹可以查看

私钥保存在您的电脑上,公钥交添加到服务器上。
用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库。
下面罗列的是ssh-keygen的各个参数的作用

二、放秘钥到服务器上

1.GitHub服务器

路径:settings——SSH and GPS keys里面new一个ssh key
把对应的公钥(sample.pub)放上去(把文件里的字符复制进去)。
GitHub_ssh
这时,你已经可以用ssh获取别人的项目代码了
获取源码:
$ git clone git@github.com:username/gitproj.git

2.配置git服务器

其实就是放了一个远程仓在服务器上。
ubuntu上安装git

centos上安装git

创建用户git

我这里用的是centos
进入git用户

创建秘钥

私钥自行保存。

创建authorized_keys文件保存公钥

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

改为

测试

pc端上
配置pc端的私钥,放在~/.ssh文件夹下面,如有需要可以再配置一个config文件同样放在~/.ssh文件夹下面,config文件配置见下文。

客户端验证

这里aliyun-get是域名,更多详细请看下面的config配置。执行到这一步基本ok了。

3.多服务器ssh

如果有多台服务器上怎么分别对应不同秘钥呢?你需要配置一个config文件在~/.ssh里面
里面写有各个服务器的配置清单。
~/.ssh/config

分类: DevOps

发表评论

电子邮件地址不会被公开。