ssh key

使用ssh key可以免去每次使用ssh命令时输密码的麻烦,这里简单介绍一下ssh key的使用。

在前面的一篇文章《网络环境的身份认证方法》中,简单介绍了身份认证的方法。在我看来(可能不准确,或者直接是错误,欢迎指正),ssh在输密码的时候,无非就是在对user进行一个身份认证的操作。之所以,用ssh key可以免去输密码的麻烦,很显然是利用了ssh key可以进行身份认证的作用。不做,通过产生一对ssh key(公钥和私钥),可以完成对发信人的身份认证。具体参见《网络环境的身份认证方法》,当使用私钥进行加密而使用公钥进行解密的时候,正是利用这种非对称密钥来验证发信人的身份的。当然,这也就是为什么在ssh key的使用过程中,需要将公钥添加到server端。只有这样,server才可以验证是不是user的身份。下面,介绍下ssh key的使用方法。

1、生成密钥对
OpenSSH 提供了ssh-keygen用于生成密钥对,不加任何参数调用即可:
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key: 
如果你以前没有生成过密钥对,直接回车就行。然后会问你“passphrase”,这是用来加密私钥的密码。如果你不知道怎么用,直接用空密码也行(当然>,这样会降低安全性)。按两次回车后密钥对就生成好了。默认密钥对存放在用户主目录下面的.ssh目录中,其中的会有两个文件:后缀名为pub的是公钥,另一个是私钥。

注意:不要把你的私钥和任何人分享。公钥可以到处分发。

2、上传密钥

为了实现ssh时输密码的麻烦,必须将密钥上传到sever。方法很简单,只需将上面生成的公钥文件中的内容,追加到sever的~/.ssh/authorized_keys文件中即可(如果该文件不存在,则需要新建该文件。)。这样就可以实现ssh免密码登录了。但是,为了安全地使用ssh key要注意~/.ssh相关文件的权限。为防止你的私钥被恶意用户获取和/或篡改,以及你的公钥信息被恶意用户篡改,ssh 对 ~/.ssh 的文件权限有着严格的要求。如果权限不对,公钥验证不会正常工作。NOTE: 准确说来,这取决于 sshd 的配置。但不管怎样,出于安全性考虑,按如下步骤配置文件权限还是必要的。

在本地和远程两台机器上,都确认 ~/.ssh 目录只有你有 rwx 权限,其他人没有任何权限:
% pwd
/home/lfqy
% chmod 700 .ssh
% ls -dl .ssh
drwx------ 2 lfqy lfqy 4046 7月 31 16:29 .ssh/
在本地机器上,确认私钥只有你有 rw 权限,其他人没有任何权限:
% pwd
/home/lfqy/.ssh
% chmod 600 id_rsa
% ls -l id_rsa
-rw------- 1 lfqy lfqy 1679 7月 31 16:49 id_rsa
类似地,确认远程机器上的 ~/.ssh/authorized_keys 只有你有 rw 权限:
% pwd
/home/lfqy/.ssh
% chmod 600 authorized_keys
% ls -l authorized_keys
-rw------- 1 xiaq lfqy 394 7月 31  16:54 authorized_keys



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值