Linux的SSH2(RSA)验证登录
SSH相比telnet来说已经是非常安全了,要是再加上RSA验证的话就更完美了。
这里产生一对密钥,并且由Passphrase加密,把公钥放到要登录的服务器上(某个帐户home目录中的.ssh下),私钥由远程登录者持有,把私钥分发给授权用户,并告知他们Passphrase。
一旦私钥泄露,还有Passphrase做最后的拖延,此时迅速把服务器端的公钥删除,非法者手中的私钥也就作废了,他们还是不能登录服务器,保证了安全。
这里我们使用Windows下最好的远程终端SecureCRT来做实例说明。
打开连接窗口,建立一个新session,这里用RSA来取代传统的密码验证。如图:
新建一个session,使用SSH2协议。
登记远程Linux主机的IP和用户名
给session取个名
打开session的选项设置
我们用PublicKey来验证,取消Password,不然优先以密码验证!
选择中PublicKey后,进入右边的Properties:
默认是Use global public key setting, 我们这里选择只针对单个session的key。把公钥私钥都放到C盘,当然也可以放到任何地方,建议不要有中文路径。最后Create密钥。如图:
选RSA
Passphrase:类似于密码,是用来加密RSA密钥。可以留空,这样密钥就不会被加密,登录的时候也就是完全的“免密码登录”(没有任何输入密码的提示,很痛快!但不推荐。)
Key 长度当然是越长越安全!这里做测试,默认即可。
不停在此窗口上移动鼠标,直到密钥完全生成。这里晃动鼠标是为了取随机数(坐标)来生成密钥。
强烈建议选OpenSSH,因为OpenSSH是免费的,大部分Linux上都是OpenSSH,这样避免了兼容性和法律问题!
图 Identity是私钥,Identity.pub是公钥
完成,点击“否”,我们用其他的方式传到服务器。
点击OK,完成配置
上传公钥到Linux服务器
采用Zmodem方式上传,方便快捷!再也不用建立什么samba或者ftp啦~
用户目录(即~)下建立.ssh目录,更改权限:700,只允许本人读写和运行。这一步很重要,否则后面验证会出错,说找到度密钥。
用rz命令来上传文件:输入rz后会弹出一个对话框,找到刚才的建立的公钥(C:\Identity.pub),确定后就上传到Linux服务器了。结果见图:
把Identity.pub改名为authorized_keys2,2代表我们上面使用的是SSH2。若SSH的话为authorized_keys。
改权限,建议600,代码除了自己别人都不能读写。
OK,现在来使用RSA验证来登录。
成功登录! 为了更安全,我们应该把/etc/ssh/sshd_config的 PasswordAuthentication 设置成no,关闭普通的密码验证,这样就只支持RSA验证方式。