Linux系列-Red Hat5平台下构建密钥对验证的SSH登录体系<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


Telnet大家都应该用过,感觉还可以吧,用起来确实不错。但就安全性而言实在不敢恭维。在局域网里用一下还可以,要是一牵扯到远程还得SSH。



SSH(Secure Shell)是标准的网络协议,主要用于实现字符界面的远程登录管理,以及远程文件复制的功能。SSH协议对通过网络传输的数据进行了加密处理,其中也包括了用户登录时输入的用户口令。与早期的telnet、rsh、rcp等应用相比,SSH协议提供了更好的安全性。



RHEL5中,默认安装了OpenSSH服务器的客户端的相关软件包。它属于开源软件项目,如果没有的话的可以去它的官方网站下载,地址如下:



Http://www.openssh.com



本次很简单所以我也没准备拓扑,直接来看步骤吧!



1.       在客户端创建用户



用root用户也可以,但不建议使用root用户。不管什么情况下我们都应该避免直接使用root用户,要把su这个命令好好用起来。所以下面我建了一个普通用户zpp,并且设了密码。



宝塔添加远程redis数据库 宝塔添加ssh信息_运维

 

2.       在客户端创建密钥对


现在还是在客户上,使用ssh-keygen命令工具为当前用户创建密钥对文件,可以使用的加密算法为RSA或DSA。我就用RSA吧。咱们按照图上说的做,做完之后就会产生一对密钥,一个公钥一个私钥。默认位于用户宿主目录下的.ssh/目录下,其中id_rsa.pub是用户的公钥文件,可以提供SSH服务器;id_rsa是用户的私钥文件,默认权限为600,私钥文件必须妥善保管。


宝塔添加远程redis数据库 宝塔添加ssh信息_运维_02

 

3.       上传公钥文件给服务器


将客户端用户创建的公钥文件发送给OpenSSH服务器,并保存到服务器的授权密钥库中。服务器的授权密钥库文件位于各用户宿主目录下的.ssh/目录中,默认的文件名是authorized_keys。上传公钥文件时可以选择FTP、Samba、HTTP、SCP、E-mail等方式,我这大家也看到了使用的是Samba。然后我建了一个与客户端同名的帐户,最后把公钥信息复制了一份到服务器上,名字叫authorized_keys。这个名子是系统上配置文件里默认的。


宝塔添加远程redis数据库 宝塔添加ssh信息_运维_03

 

注意这个文件的所有者要求是登录的目标用户或root,同组或其他用户对该文件不能有写入权限,否则可能无法使用密钥验证成功登录系统。最好由root来创建,并保持权限为644如下:


宝塔添加远程redis数据库 宝塔添加ssh信息_密钥对_04

 

4.       调整服务器设置


SSH的配置文件叫sshd_config,在/etc/ssh/目录下,咱们最好来个备份(Linux下所有服务的配置文件都建议这样做),然后把那些没用的注释行去掉。这样显得简洁大方。


宝塔添加远程redis数据库 宝塔添加ssh信息_运维_05

 

在OpenSSH服务器的配置文件中,设置启用密钥对验证方式,禁用密码验证方式,并且指定保存用户公钥内容的数据文件位置,如图:


宝塔添加远程redis数据库 宝塔添加ssh信息_宝塔添加远程redis数据库_06

 

5.       启动sshd服务,确保22端口已经开了,如图:


宝塔添加远程redis数据库 宝塔添加ssh信息_客户端_07

 

6.       现在咱们到客户端来试试看


用zpp用户登录到Client(网管工作站)然后使用命令ssh@192.168.1.1 登录。首次登录时它会说一番客套话,不用管它说什么,yes就是了,然后它会要咱们输入事先设置的密码短语。输入之后就上去了,如图:


宝塔添加远程redis数据库 宝塔添加ssh信息_宝塔添加远程redis数据库_08

 

    OK!现在咱们就构建起了密钥对验证的SSH登录体系,最后再次强调一下密钥一定要保管好。否则是相当危险的。大家从上图中可能已经看到了,从客户端登录服务器时是不需要知道服务器中对应用户密码的。


转载于:https://blog.51cto.com/zpp2009/288639