仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 606|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇xshell基于密钥上岸近程主机

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!引子:
第一次打仗到SSH,也是第一次打仗到Linux(UnixLike)体系,工夫上说不下去了,SSH算得上是Linux体系的的一个尺度设置,对SSH的印象,它就是一种近程毗连的工具,有了它就可以宁静的与近程主机举行毗连。
(一)、甚么是SSH
SSH的全称是SecureShell,复杂说来ssh是一种宁静的外壳协定,用于两个盘算机间宁静的近程上岸,说它宁静,是由于ssh接纳公钥加密的机制。
最入手下手时用作近程办理的工具是telnet,这个协定事情时在收集上传输的数据满是明文,出于宁静性的思索,此协定的利用率愈来愈少。而ssh的宁静性利用它成为一种互联网上近程上岸主机的办理计划。
在windows体系上经常使用到的有Putty、SecureCRT、XManager中的Xshell工具,而XManager工具是我见到的IT事情者中利用频次极高的一个工具,在windows上仿佛没有ssh协定的办事器真个完成,ssh协定的完成也分为贸易的完成和开源的完成,在这里将是对ssh协定的一个开源完成的进修与纪录。Openssh便是Linux体系下开源的完成,它开放且收费。
(二)、ssh事情道理
说ssh是种宁静的协定,是由于它接纳公钥加密。用主机A毗连主机B来讲明这个历程:
1、主机A向主机B倡议上岸哀求;
2、主机B向主机A发送公钥文件;
3、主机A把上岸暗码用吸收到的公钥加密后发送给主机B;
4、主机B用本人的私钥解密加密信息,失掉上岸暗码;
5、主机B考证暗码的准确性,准确则让其上岸,不然则断开。
(三)、两头人打击(Man-in-the-middleattack)
基于公钥加密这类考证体例看起对照完善,上岸暗码的传输都是经由公钥加密处置,即便被歹意挟制,只需私钥文件没有被保守,那也不克不及解密加密信息,暗码的保密性失掉保证。但这类看似完善的事情体例也有其致命的缺点,假如主机B是黑客假装的,他吸收到主机A的上岸主机B的上岸哀求,用本人的公钥发送给主机A,而主机A很难分辨主机B的真伪,黑客就能够接纳这类体例取得主机B准确的上岸暗码,这就是着名的两头人打击(Man-in-the-middleattack)。
要想应对两头人的打击,则需制止上岸时输出用户口令的操纵,ssh中的认证体例有两种,一种是基于口令的体例,另外一种是基于公钥的认证体例,后者就可以在用户不输出口令的情形下上岸主机。
(四)、设置文件
体系情况:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@bogon~]#cat/etc/redhat-release<br>CentOSrelease6.4(Final)<br>[root@bogon~]#uname-m<br>x86_64<br></span>



先看一下体系中装置openssh所用的装置包:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@bogon~]#rpm-qa*ssh*<br>openssh-5.3p1-84.1.el6.x86_64<br>openssh-clients-5.3p1-84.1.el6.x86_64<br>libssh2-1.4.2-1.el6.x86_64<br>openssh-server-5.3p1-84.1.el6.x86_64<br></span>



能够用“rpm-ql装置包称号”下令来检察各个装置名天生的目次布局,以下:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@bogon~]#rpm-qlopenssh-clients<br></span>



关于openssh,我们必要存眷的设置文件分为两类,一类是大众设置文件,另外一类是公有设置文件。大众设置文件又分为办事真个配件文件和客户真个设置文件。
/etc/ssh/sshd_config#办事端设置文件
/etc/ssh/ssd_config#客户端设置文件
~/.ssh/*#公有设置文件
我们次要存眷的是办事真个设置文件和公有设置文件。

(五)、认证体例
ssh撑持两种认证体例,一种是基于用户名与口令的认证,另外一种是基于密钥的认证。
5.1基于用户名与口令认证:客户端经由过程输出用户名与用户上岸暗码的体例完成近程上岸,虽然说是请求输出用户名及暗码来考证,但ssh也会触及到公钥的发送,即近程主机收到用户近程上岸哀求时会把本人的公钥发送给用户端。
在windows下以ssh的体例上岸linux主机时,以xmanager为例,当用xmanager中的xshell第一次上岸linux主机时会有以下的提醒:

大抵意义就是用户包要毗连的主机在用户当地的存储key的数据库中没有存储,主机是不成信托的,而且给出了近程主机公钥的择要信息,是不是要断续的毗连此主机?那如何来考证我所要毗连的主机(192.168.0.201)是实在的,不是一个假装的主机,制止两头人打击。当点击“Accept&Save”,那xshell会把近程主机的公钥信息保留上去,在这里能够检察到:


应对两头人打击,SSH有2种***,一是近程主机把本人的公钥拿到CA处做认证,请求一个数字证书;二是近程主机把本人公钥的指纹信息发布出来,好比发布在网站上,人人都可检察到公钥的指纹信息。如许用户在上岸时就能够判别主机的真伪了。提取主机的指纹信息的***以下:
1
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#ssh-keygen-lf/etc/ssh/ssh_host_dsa_key.pub<br>102439:61:e5:80:e8:09:b3:83:10:39:c8:b4:5e:ca:45:7e/etc/ssh/ssh_host_dsa_key.pub(DSA)<br></span>




近程主机能够把这个接纳dsa算法的指纹信息公布在一个网站上,那我用xshell往近程毗连时便可对照一下指纹信息是否是一样,假如是一样的那就可以证实我毗连的是实在的主机。
在linux下用ssh体例上岸另外一linux主机时,假如第一次上岸会有以下的提醒:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#ssh192.168.0.201<br>Theauthenticityofhost192.168.0.201(192.168.0.201)cantbeestablished.<br>RSAkeyfingerprintis4c:a3:2f:29:69:86:f6:0f:38:25:8c:7c:7c:3b:d5:91.<br>Areyousureyouwanttocontinueconnecting(yes/no)?<br></span>



暗示的意义与用xshell上岸时的提醒不异,输出“yes”,再输出近程主机的口令便可上岸,上岸乐成后当地主时机天生“~/.ssh/known_hosts”文件,这文件里保留着近程主机的公钥信息,如许下次再近程上岸时就不必要发送公钥信息了,间接输出口令便可。

5.2基于公钥的认证:基于用户口令的认证体例每次都请求用户供应准确的口令,对照贫苦,且增添了口令保守的机率。而基于公钥的认证则不必要用户输出口令便可完成近程上岸。这类认证体例是如许事情的:用户把本人的公钥存储在近程主机上,在上岸时,近程主机向用户发送一段随机字符串,用户用本人的私钥加密这段随机数字,并把加密后的信息发送给近程主机,近程主机用事前存储的公钥来解密这个数据,假如解密乐成,则申明哀求上岸的用户是可托任的,如许就间接同意用户上岸,而不请求输出暗码了。
这类认证体例,必要用户本人的公钥,并把公钥保留到近程主机上。若没有现成的公钥,那就天生:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#ssh-keygen-trsa<br>Generatingpublic/privatersakeypair.<br>Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):<br>Enterpassphrase(emptyfornopassphrase):<br>Entersamepassphraseagain:<br>Youridentificationhasbeensavedin/root/.ssh/id_rsa.<br>Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.<br>Thekeyfingerprintis:<br>9b:ef:2c:6a:92:05:c7:f4:4b:b8:4e:b4:ce:05:2f:0croot@Server-A<br>Thekeysrandomartimageis:<br>+--[RSA2048]----+<br>||<br>|.|<br>|oo|<br>|E*o|<br>|**S.|<br>|B+o|<br>|Boo|<br>|o=.o|<br>|o..o+|<br>+-----------------+<br>[root@Server-A~]#ls.ssh/<br>id_rsaid_rsa.pubknown_hosts<br></span>



此时在家目次下的“./ssh”目次下天生了两个文件,一个id_rsa(私钥文件),id_rsa.pub(公钥文件)。接着把公钥文件拷贝到近程主机:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#scp.ssh/id_rsa.pub192.168.0.201:/root/.ssh/authorized_keys<br></span>



这里的“authorized_keys”这个文件名不克不及变动,这是由“/etc/ssh/sshd_config”文件界说的。
测试一下可否不输出暗码就可以近程上岸Server_B主机:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#ssh192.168.0.201<br>Address192.168.0.201mapstobogon,butthisdoesnotmapbacktotheaddress-POSSIBLEBREAK-INATTEMPT!<br>[root@Server-B~]#<br></span>



没错,乐成了,但有呈报信息,这是由于在/etc/hosts文件里没有增添两主机的映照干系,增添就能够了,在两主机中的“/etc/hosts”文件中都增添以下两行:
[size=1em][size=1em]<spanstyle="font-family:arial,helvetica,sans-serif;">[root@Server-A~]#echo"192.168.0.200Server-A">>/etc/hosts<br>[root@Server-A~]#echo"192.168.0.201Server-B">>/etc/hosts<br></span>



<pstyle="padding:0px;margin:0px;clear:both;height:auto;overflow:hidden;color:rgb(44,44,44);font-family:宋体,ArialNarrow,arial,serif;font-size:14px;line-height:21px;"><spanstyle="padding:0px;margin:0px;font-size:16px;line-height:24px;font-family:arial,helvetica,sans-serif;">上边用“scp”下令间接把主机的公钥文件拷贝到近程主机用户家目次下的“root/.ssh/authorized.keys”,实在另有一个更好的***,ssh为我们供应了一个客户如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
飘灵儿 该用户已被删除
沙发
发表于 2015-1-14 20:26:32 | 只看该作者

带来一篇xshell基于密钥上岸近程主机

LZ敢整点更有创意的不?兄弟们等着围观捏~
再见西城 该用户已被删除
板凳
发表于 2015-1-23 17:18:38 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-1-31 20:32:20 来自手机 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
简单生活 该用户已被删除
5#
发表于 2015-2-7 02:16:38 | 只看该作者
众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
飘灵儿 该用户已被删除
6#
发表于 2015-2-20 05:15:21 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-6 17:09:50 | 只看该作者
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
变相怪杰 该用户已被删除
8#
发表于 2015-3-13 06:09:40 | 只看该作者
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
小魔女 该用户已被删除
9#
发表于 2015-3-20 15:56:26 | 只看该作者
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 18:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表