在使用git时,如果使用gitolite架设的服务器时,需要用到ssh key来作验证,同时也是方便每次操作git库时免去输密码的麻烦。
同样情况,我们在常用的服务器与客户端之间使用SSH访问时,也可以使用ssh key来验证登录身份,每次只需连接即可。
在SSH里提供了两种级别的安全验证,其中一种就是最常用的帐号密码登录方式,这种级别在内网倒没什么问题,如果是在外网,建议使用基于“公钥加密”机制的安全验证了,其采用了非对称加密方式,将公钥上传到服务器,每次从服务器获取数据时,服务器先用公钥将数据加密,然后客户端收到加密后的数据 包再使用相应的私钥解密还原数据,这样就可以保证密文在网络传输过程中的安全,即使有人劫获了密文,没有对应的密钥也是还原不了数据。
那么接下来还是看看如何使用吧!
1.生成钥匙对
xinu@slam:~$ ssh-keygen -t rsa -C “stguochongxin@stxinu.slam”
使用上述命令生成钥匙对,其中-t表示钥匙对采用的加密类型为后面设置的rsa,-C是注释,说明这个KEY的用途等,这里使用邮箱主要是方便管理,说明这个KEY是谁的。
运行该命令后有如下内容输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xinu/.ssh/id_rsa):
这里按“回车”键确认生成的钥匙对保存在默认地址,接下来会提示如下:
Enter passphrase (empty for no passphrase):
这里要求输入密码,如果回车表示密码为空,请按实际处理,输入密码后会提示再次输入确认:
Enter same passphrase again:
输入并“回车”后会生成KEY,截图如下:
上述显示了该钥匙的私钥为/home/xinu/.ssh/id_rsa,公钥为/home/xinu/.ssh/id_rsa.pub,还有指纹及随机艺术图,该钥匙对文件以ASCII码形式保存,可随意打开查阅。
2.多钥匙配置
当我们再次生成一把钥匙或从朋友那拿到一个服务器登录的私钥时,我们如何使用这两人把钥匙呢?
假如这把钥匙名叫id_rsa2,并且其保存在~/.ssh/目录下,接下来我们将/etc/ssh/ssh_config文件拷贝为~/.ssh/config,然后修改该文件,保证在Host * 节下有如下两项:
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa2
这样两把KEY就可以对于任意主机进行访问(前提是该主机有相就的公钥并且开放SSH访问权限)。
3.launchpad里对于SSH的配置
登录Launchpad网站后,切换到个人信息管理页面,点击“SSH keys:”后面的“+”按钮,打开id_rsa.pub文件,将该文件所有内容复制到添加页面的文本框里,再点击“Import Public Key”按钮即可。
至此,整个SSH KEY的基本使用就了解了一遍。