Linux下基于密钥的安全验证实现方法
-------OpenSSH+WinSCP+putty密钥生成器+putty
实验背景:
小诺公司目前已使用Linux搭建了各个服务器(FTP、DNS、Apache、Sendmail、Samba),由于这些服务器都被放置在一个安全的地方,一般是不允许任何人进入的,公司现在需要通过远程客户端安全的访问这些服务器。
SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。
SSH提供了口令和密钥两种用户验证方式,这两者都是通过密文传输数据的,不同的是,口令用户验证方式传输的是用户的账户名和密码,这要求输入的密码具有足够的复杂度才能具有更高的安全性。而基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(puetty)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器。这种方式是相当安全的。
 
实验网络拓扑:
 
实验步骤:
 
一、 安装并配置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即可。
 
 
二、 安全使用WinSCP软件导出用户私钥
 
由于需要将私钥文件id_rsa拷贝到用户的主机上,而且还要删除服务器上的私钥,这样可以保证私钥的唯一性。如果通过Samba或者FTP服务器都可能造成私钥的丢失,因此需要采用安全的方式访问Linux服务器。WinSCP是Windows下的scp和sftp客户端程序,安装完WinSCP软件之后,开启WinSCP软件会出现与PuTTY类似的配置对话框,在该对话框中输入SSH服务器的主机名(IP地址)和端口号,用户名和密码(口令),并选择“登录”按钮进入登录,连接的方式是通过密文传输的,安全性极高。
 
 
通过WinSCP软件登录上Linux之后,可以将用户的私钥id_rsa先拷贝到自己的主机上,然后将Linux上的私钥删除即可以防后患。
 
 
三、 使用PuTTY密钥生成器生成Windows识别的密钥。
由于Linux下生成的密钥直接在Windows下是不能使用的,因此需要使用puTTYgen在Windows客户端生成对应的私钥。
将Linux服务器上下载下来的私钥导入到PuTTY服务器上,选择密钥位数为1024,类型为SSH-2 RSA和服务器上命令ssh-keygen设置的参数对应。
 
 
单击“生成”按钮,然后输入密钥使用的密码。
 
 
生成之后,单击“保存私钥”到本机上,会生成一个扩展名为ppk文件退出即可。
 
 
四、 安装并配置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”造成的。
 

本文出处http://dreamfire.blog.51cto.com/418026/167468

转载于:https://www.cnblogs.com/caly/archive/2012/08/21/2648617.html

Linux下基于密钥的安全验证实现方法相关推荐

  1. linux跟踪内存检测原理,wooyun/Linux下基于内存分析的Rootkit检测方法.html at master · exitmsconfig/wooyun · GitHub...

    Linux下基于内存分析的Rootkit检测方法 - 路人甲 原文地址:http://drops.wooyun.org/tips/4731 0x00 引言 某Linux服务器发现异常现象如下图,确定被 ...

  2. linux下基于内存分析的rootkit检测方法

    0x00 引言 某Linux服务器发现异常现象如下图,确定被植入Rootkit,但运维人员使用常规Rootkit检测方法无效,对此情况我们还可以做什么? 图1 被植入Rootkit的Linux服务器 ...

  3. linux c语言 信号,linux下基于C语言的信号编程实例

    搜索热词 本文实例讲述了linux下基于C语言的信号编程方法.分享给大家供大家参考.具体如下: #include #include #include #include #include void si ...

  4. Linux下基于Libmad库的MP3音乐播放器编写

    linux下基于Libmad库的MP3音乐播放器编写 libmad是一个开源mp3解码库,其对mp3解码算法做了很多优化,性能较好,很多播放器如mplayer.xmms等都是使用这个开源库进行解码的: ...

  5. Linux下基于qt的视频监控系统

    目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...

  6. Linux下基于GTK人脸识别界面设计

    Linux下基于GTK人脸识别界面设计 1.人脸识别简介   人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸, ...

  7. linux 下基于jrtplib库的实时传送实现

    linux 下基于jrtplib库的实时传送实现 一.RTP 是进行实时流媒体传输的标准协议和关键技术 实时传输协议(Real-time Transport Protocol,PRT)是在 Inter ...

  8. linux下基于jrtplib库的实时传送实现

    linux 下基于jrtplib库的实时传送实现 一.RTP 是进行实时流媒体传输的标准协议和关键技术  实时传输协议(Real-time Transport Protocol,PRT)是在 Inte ...

  9. linux80端口检查,Linux下基于端口的服务检查脚本

    Linux下基于端口的服务检查脚本 #!/bin/bash #program:Usingtostudythe[if...then...fi]program #dsk2007/10/83:00 #con ...

最新文章

  1. SpringCloud Ribbon源码探索学习
  2. 神话人物的现代版简历
  3. java 设置控制台标题_修改Tomcat控制台标题以及标题乱码处理
  4. (92)低速接口UART、IIC、SPI介绍,面试必问(十六)(第19天)
  5. mysql5.3.4 mac 配置_Mac下安装与配置MySQL
  6. php是属于什么软件,.php是什么软件?
  7. SparkStreaming简介
  8. 建站篇-用户认证系统-管理员登陆后台
  9. 201621123079《Java程序设计》第1周学习总结
  10. python怎么画散点图_用python画xy散点图
  11. 4g 访问App 慢的原因
  12. GitDown: 下载Github特定文件夹
  13. Photoshop(简称Ps)制作个人logo
  14. CSDN_MySQL入门技能树学习整理知识点
  15. 拟合程度的评估--判定系数
  16. 2023年湖北初级职称(助理工程师)怎么申报?需要什么材料?启程
  17. 光盘映像文件的安装方法
  18. 中国版权保护中心注册不了的解决办法
  19. css vw单位_使用CSS vw单位创建完美的响应形状
  20. ubuntu下安装pdf编辑器Master PDF Editor

热门文章

  1. 云计算赋能人工智能,未来的红利在哪?
  2. 面试官问:数据库 delete 表数据,磁盘空间还是被一直占用,为什么?
  3. 放弃 Notepad++,事实证明,还有 5 款更牛逼……
  4. 在滴滴和头条干了 2 年后端开发,太真实了…
  5. 关于 CPU 的一些基本知识总结
  6. 三本+双非拿到小米offer,我的经验总结
  7. 聊聊恺明大神MAE的成功之处!
  8. 非计算机专业自学1年拿到算法offer的总结(附学习路线)
  9. 解读:为什么要做特征归一化/标准化?
  10. GIA张怡:关于小白入门AI算法工程师的直播分享