Linux下基于密钥的安全验证明现方法
-------OpenSSH+WinSCP+putty密钥生成器+putty
实验背景:
小诺公司目前已使用Linux搭建了各个服务器(FTP、DNS、Apache、Sendmail、Samba),因为这些服务器都被放置在一个安全的地方,通常是不容许任何人进入的,公司如今须要经过远程客户端安全的访问这些服务器。
SSH是标准的网络协议,可用于大多数UNIX操做系统,可以实现字符界面的远程登陆管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于经过明文传输的Telnet,具备更高的安全性。
SSH提供了口令和密钥两种用户验证方式,这二者都是经过密文传输数据的,不一样的是,口令用户验证方式传输的是用户的帐户名和密码,这要求输入的密码具备足够的复杂度才能具备更高的安全性。而基于密钥的安全验证必须为用户本身建立一对密钥,并把共有的密钥放在须要访问的服务器上。当须要链接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求以后,先在该用户的根目录下寻找共有密钥,而后把它和发送过来的公有密钥进行比较。若是两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(puetty)。客户端收到质询以后,就能够用本地的私人密钥解密再把它发送给服务器。这种方式是至关安全的。
实验网络拓扑:
实验步骤:
1、 安装并配置OpenSSH软件
在RHEL4系统中OpenSSH服务器和客户端软件是默认安装的,所以不须要用户手动安装。若是没有安装,与OpenSSH服务相关的软件包都包括再第二张安装光盘中,可经过rpm命令进行安装。
在RHEL4中,与OpenSSH服务相关的配置文件都保存在目录“/etc/ssh”中,其中sshd_config是SSH服务器的配置文件,ssh_config是SSH客户机的配置文件。本实验经过在Windows使用puetty登陆,所以不须要配置ssh_config。只须要配置sshd_config便可。
在sshd_config文件中将下面的三行注释去掉便可。
RSAAuthentication yes 开启RSA加密功能
PubkeyAuthentication yes 开启公钥验证功能
AuthorizedKeysFile 指定公钥的文件名称以及保存位置
配置完成以后,须要重启sshd服务程序,以便新的配置生效。
在SSH服务器端(客户机端也能够,最好在客户机端生成,而后将公钥上传到对应的目录中,这样比较安全)生成公钥和私钥对。
ssk-keygen命令用于生成当前用户的密钥对。
-t rsa 命令选项指定密钥的类型为rsa。
-b 1024 命令选项指定密钥的长度为1024位。
在ssh-keygen命令生成密钥的执行过程当中,须要用户回答相关的设置信息,第一个为私钥的默认路径,第二个为私钥的密码,第三个为私钥的再次密码确认。
ssh-keygen命令执行完毕后会在用户宿主目录的“.ssh”目录中生成两个文件,其中id_rsa是用户私钥文件,id_rsa.pub是用户的公钥文件,这两个文件是经过ssh_keygen命令一次生成,而且须要配对使用的。
因为生成的公钥名称与指定的公钥名称不符,所以须要将生成的文件名换成authorized_keys便可。
2、 安全使用WinSCP软件导出用户私钥
因为须要将私钥文件id_rsa拷贝到用户的主机上,并且还要删除服务器上的私钥,这样能够保证私钥的惟一性。若是经过Samba或者FTP服务器均可能形成私钥的丢失,所以须要采用安全的方式访问Linux服务器。WinSCP是Windows下的scp和sftp客户端程序,安装完WinSCP软件以后,开启WinSCP软件会出现与PuTTY相似的配置对话框,在该对话框中输入SSH服务器的主机名(IP地址)和端口号,用户名和密码(口令),并选择“登陆”按钮进入登陆,链接的方式是经过密文传输的,安全性极高。
经过WinSCP软件登陆上Linux以后,能够将用户的私钥id_rsa先拷贝到本身的主机上,而后将Linux上的私钥删除便可以防后患。
3、 使用PuTTY密钥生成器生成Windows识别的密钥。
因为Linux下生成的密钥直接在Windows下是不能使用的,所以须要使用puTTYgen在Windows客户端生成对应的私钥。
将Linux服务器上下载下来的私钥导入到PuTTY服务器上,选择密钥位数为1024,类型为SSH-2 RSA和服务器上命令ssh-keygen设置的参数对应。
单击“生成”按钮,而后输入密钥使用的密码。
生成以后,单击“保存私钥”到本机上,会生成一个扩展名为ppk文件退出便可。
4、 安装并配置PuTTY软件
在windows中须要安装第三方软件来实现SSH客户端的功能。PuTTY是Windows下最流行的SSH客户端软件,而且仍是绿色软件,专门为SSH设置使用的,可以无偿使用。下面是打开以后的主界面。
在会话一栏输入主机名称对应的IP地址,端口号为22,协议类型为SSH。
在认证一栏中导入PuTTY密钥生成器生成的密钥。
而后保存会话并打开。输入用户名root,而后输入私钥的密钥便可。
因为SSH采用密文的传输方式,所以默认运行root用户直接进入SSH登陆,出于安全的须要也能够设置禁止root用户直接进行SSH登陆。
在sshd_config配置文件中将“permitRootLogin yes”前面的注释去掉,并将“yes”改成“no”便可。对sshd_config配置以后,从新启动sshd服务便可。
在PuTTY上设置一个使用Linux口令登陆能够发现登陆失败,这就是“PermitRootLogin no”形成的。