SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell。SSH登录是需要用户名和密码的,要实现无密码登录,就需要创建SSH 密钥(ssh key),SSH 密钥可以认为是和另一台电脑通信时的唯一的识别证,SSH 密钥对可以让我们方便的登录到 SSH 服务器,而无需输入密码。GIT源代码管理就是使用此种安全机制,本文本将介绍SSH KEY的生成过程。
1. 检查是否生成过ssh 密钥
生成ssh 密钥后,会在当前用户的根目录下创建.ssh目录。因此,可以通过以下两种方式检查是否生成过ssh 密钥。
其一,是否可切换到.ssh目录:
cd ~/.ssh
如果.ssh目录则会切换到对应目录,不存在会有相关提示。
其二,使用ls命令检查:
ls -l ~/
通过以上两种方式检查后,当存在时,可以继续下面的操作重新生成ssh 密钥,也可以使用已经生成的ssh 密钥。
2. 使用ssh-keygen命令生成ssh 密钥
使用ssh-keygen命令生成ssh 密钥可以使用以下命令:
ssh-keygen -t rsa
也可以使用以下命令在生成时添加注释:
ssh-keygen -t rsa -C "邮箱地址"
上面两个命令都可以生成ssh 密钥,输入上面命令后,连按三个空格即可生成ssh 密钥。
生成ssh 密钥后,可以到~/.ssh目录下查看相关文件,一般来说ssh 密钥会包含id_rsa和id_rsa.pub两个文件,分别表示生成的私钥和公钥。
在git等源代码管理中,使用cat ~/.ssh/id_rsa.pub命令,打印并将相应内容复制到源代码管理服务器即可实现git的无密码管理。
3. ssh-keygen命令的一些说明
ssh-keygen命令可以生成rsa或dsa两种格式的密钥。在上面的示例中,使用-t rsa参数生成了id_rsa和id_rsa.pub两个文件,分别表示rsa私钥和rsa公钥。同理,可以使用-t dsa参数生成dsa私钥和dsa公钥,生成的文件名分别是:id_dsa、id_dsa.pub。
在上面的示例中,还通过-C参数添加了密钥的注释,如果不需要这个参数也可以省略。
除前面用到的两个参数外,ssh-keygen命令还有其它一些参数,具体说明请使用ssh-keygen --help命令查看。