linux 下ssh 服务配置Word文档下载推荐.docx
- 文档编号:18440932
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:20
- 大小:597.28KB
linux 下ssh 服务配置Word文档下载推荐.docx
《linux 下ssh 服务配置Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux 下ssh 服务配置Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
如下图所示,当SSH激活服务之后,会产生一支公钥,而身为个人计算机的你,在进行与server的联机时,可以藉由自己产生的私钥来提供server的联机之用,也可以直接藉由server提供的私钥来进行联机!
这个与进行联机时选择的加密版本有关,这个等一下我们再提!
在上面的图标中,我们可以知道,当数据由Server端传送到Client端时,这些资料会先经过『公钥,PublicKey』来进行加密的行为,所以,在传输的过程中,这些资料本身是经过加密的,因此,即使这些资料在途中被截取时,要破解这些加密的资料,还是得要花费上好长一段时间的。
那么等这些经过公钥加密的资料传送到Client端之后,就可以藉由所谓的『私钥,PrivateKey』来进行解密的动作。
需要注意的是,这些公钥与私钥在每一部计算机上面都不一样,所以,你与Server的联机对其他人来说,都是很难去破解的呢!
那么这些公钥与私钥是如何产生的呢?
底下我们来谈一谈目前SSH的两种版本的联机模式啰!
oSSHprotocolversion1:
每一部主机都可以使用RSA加密方式来产生一个1024-bit的RSAKey,这个RSA的加密方式,主要就是用来产生公钥与私钥的演算方法!
这个version1的整个联机的加密步骤可以简单的这么看:
1.当每次SSHdaemon(sshd)激活时,就会产生一支768-bit的公钥(或称为serverkey)存放在Server中;
2.若有client端的需求传送来时,那么Server就会将这一支公钥传给client,而Client藉由比对本身的RSA加密方式来确认这一支公钥;
3.在Client接受这个768-bit的serverkey之后,Client自己也会随机产生一支256-bit的私钥(hostkey),并且以加密的方式将serverkey与hostkey整合成一支完整的Key,并且将这支Key也传送给server;
4.之后,Server与Client在这次的联机当中,就以这一支1024-bit的Key来进行资料的传递!
当然啦,因为Client端每次的256-bit的Key是随机取的,所以你这次的联机与下次的联机的Key就会不一样啦!
oSSHprotocolversion2:
与version1不同的是,在version2当中将不再产生serverkey了,所以,当Client端联机到Server端时,两者将藉由Diffie-Hellmankey的演算方式来产生一个分享的Key,之后两者将藉由类似Blowfish的演算方式进行同步解密的动作!
每一个sshd都提供这两个版本的联机,而决定这两种模式联机的,就必需要在client端联机时选择联机的模式才能确认。
目前预设情况下,会自动使用version2的联机模式喔!
而由于我们的联机资料中,经过了这个Public与PrivateKey的加密、解密动作,所以在中间的传送过程中,当然就比较安全的多啰!
------------------------------------------------------------------------------------------------
激活ssh服务:
事实上,在我们使用的Linux系统当中,预设就已经含有SSH的所有需要的套件了!
这包含了可以产生密码等协议的OpenSSL套件与OpenSSH套件,所以呢,要激活SSH真的是太简单了!
就直接给他激活就是了!
此外,在目前的LinuxDistributions当中,都是预设激活SSH的,所以一点都不麻烦,因为不用去设定,他就已经激活了!
哇!
真是爽快~无论如何,我们还是得说一说这个激活的方式吧!
直接激活就是以SSHdaemon,简称为sshd来激活的,所以,手动可以这样激活:
上面两种方式都可以直接手动激活sshd这个服务!
然后使用netstat-tl看看能不能看到ssh的服务在监听呢!
如果出现了上面那一行黄色字体,就表示您的SSH已经正确的激活啰!
这真是太简单了吧!
没错,但是他就是这么简单~
那么我要如何在开机的时候就激活这个sshd呢?
如果是RedHat的系统,可以使用ntsysv这支程序,而Mandrake可以使用chkconfig这个程序!
至于OpenLinux则可以到/etc/sysconfig/daemons去看看喔!
这个方式仅适合在已经有OpenSSH的LinuxDistributions当中,如果以RedHat6.x为例,他并没有预设使用SSH怎么办?
别担心,可以参考一下底下这个鸟哥之前写过的网页,有详细的说明使用tarball安装的步骤呢!
使用Tarbal安装SSH以及升级SSH可能会遇到的问题说明
需要注意的是,SSH不但提供了shell给我们使用,亦即是sshprotocol的主要目的,同时亦提供了一个较为安全的FTPserver,亦即是ssh-ftpserver给我们当成是FTP来使用!
所以,这个sshd可以同时提供shell与ftp喔!
而且都是架构在port22上面的呢!
所以,底下我们就来提一提,那么怎么样由Client端连接上Server端呢?
同时,如何以FTP的服务来连接上Server并且使用FTP的功能呢?
ssh客户端联机:
ssh,putty
由于Linux与Windows这两个客户端的Client联机软件并不一样,所以我们分为两个部分来说明:
oLinux客户端:
在Linux客户端方面,我们主要以ssh进行一般联机,而已sftp进行FTP的使用联机!
分别简介如下:
这里请特别留意的是,如果直接以sshhostname来连接进入hostname这个主机时,则进入hostname这个主机的『帐号名称』将会是目前你所在的这个环境当中的使用者帐号!
以上面为例,因为我是以root的身份在执行,所以如果我执行了『sshhost.domain.name』时,那么对方host.domain.name这部主机,就会以root的身份来让我进行密码确认的登入动作!
因此,为了避免这样的麻烦,通常我都是以简单的e-mail的写法来登入远方的主机,例如『sshuser@hostname』即表示,我是以user这个帐号去登入hostname这部主机的意思。
当然,也可以使用-lusername这样的形式来书写!
登入对方主机之后,其它的所有执行行为都跟在Linux主机内没有两样~所以,真的是很简单吧!
^_^这样就可以达到远程控管主机的目的了!
此外,在预设的情况下,SSH是『允许你以root的身份登入』喔!
呵呵!
更是爽快啦!
此外,请特别留意的是,当您要连接到对方的主机时,如果是首次连接,那么Server会问你,你的联机的Key尚未被建立,要不要接受Server传来的Key,并建立起联机呢?
这个时候请『务必要输入yes而不是y或Y』,这样程序才会接受喔!
那么如何使用SSHFTP的功能呢?
也是很容易啦!
就是使用sftp这支程序即可!
而登入的方式与ssh相同,都是使用sftp-lusernamehostname或者直接以sftpuser@hosname来书写!
执行之后会有底下的模样:
进入到sftp之后,那就跟在一般FTP模式下的操作方法没有两样了!
底下我们就来谈一谈,sftp这个接口下的使用指令吧!
就整体而言,sftp在Linux底下,如果不考虑图形接口,那么他已经可以取代FTP了呢!
因为所有的功能都已经涵盖啦!
因此,在不考虑到图形接口的FTP软件时,可以直接关掉FTP的服务,而改以sftp-server来提供FTP的服务吧!
^_^
oWindows客户端:
在Linux底下已经有ssh了,那么如果在Windows底下呢?
该怎么办?
这个可以直接使用putty这种类型的联机软件呢,他也是免费的软件喔!
取得的方式可以参考底下的网站:
http:
//www.chiark.greenend.org.uk/~sgtatham/putty/
好了,那么要取得哪几个程序呢?
其实只要putty.exe及psftp.exe这两支程序就够了!
分别用来登录shell及FTP的呢!
oputty:
直接在Windows底下执行,执行的图标有点像底下这样:
这个时候请注意,由于我们比较喜欢将固定的几个主机的IP记录下来,所以在这里我们需要先进行一些基本的设定才行!
在上图中,我们需要填写:
(1)HostName(orIPaddress)那一项,及
(2)SavedSessions取个好记的名字,
(3)并且选择SSH那个选项才行!
以我的区域内网络为例,我可以写成这个模样:
请千万记得,填写完毕之后,一定要按下右边的『Save』按键,这样你的设定才会被记录下来喔!
接着下来,我们要设定的是每次登入的时候,都会进行记录的项目,所以,你可以在左边的画面上面按下『Logging』然后将右边的『Alwaysappendtotheendofit』,这样才不会每次登入的时候,系统都要问你一次,是否需要记录!
接着下来,我们还可以调整整个putty的屏幕大小呢!
以下图为例,我设定我的登入画面为40行与100个字符!
这样的画面比起传统的24*80要大的多,看起来也比较舒服就是了~那么那个1000表示我的滚动条有1000行的纪录,可以方便我往前查询呢!
调整完了屏幕的大小之后,再来这是最重要的:
『你要以第几个SSHversion进入?
!
』前面说过,我们预设是以version2来登入的,所以这里我们可以调整为2那个项目!
这样每次登入都会以version2的模式登入主机了!
好了,已经都设定完毕了,再来当然又是要记录啰!
所以请回到『Session』的设定里面,再按下一次『Save』,这个时候在中间的大框框就会出现你输入的记录名称,然后,以后要登入SSH主机时,就直接给他点两下test.linux.org那个(就是你刚刚自行设定的纪录名称),就可以进入你所点选的主机啰!
整个putty大致上的流程就是这样!
如此一来,您就可以在Windows上面以SSH的协议,登入远程的Linux主机噜!
粉方便吧!
^_^!
如果还要其它的设定,那么就直接修改SavedSessions与HostName这两个项目,然后再次给他Save,嘿嘿!
就又多一个设定值了!
而且还是跟刚刚的设定值相同!
很容易设定的啦!
opsftp:
这一支程序的重点则是在于以sftp联机上Server。
联机的方式可以直接点选psftp这个档案,让他直接激活,则会出现下面的图样:
这个时候可以填入你要连接上去的主机名称,例如我的区域内网络test.linux.org这个主机:
呵呵!
这样就登入主机啦!
很简单吧!
然后其它的使用方式跟前面提到的sftp一样哩!
加油的使用吧!
详细设定sshd服务器
基本上,所有的ssh相关设定都放在/etc/ssh/sshd_config里面!
不过,每个Linuxdistribution的预设设定都不太相同,所以我们有必要来了解一下整个设定值的意义为何才好!
基本上,在你的系统中,『除非有必要,否则请不要更改/etc/ssh/sshd_config这个档案的设定值!
』因为预设的情况下通常都是最严密的SSH保护了,因此,可以不需要更动他!
上面的说明仅是在让大家了解每个细项的一些基本内容而已!
需要注意的是最后一项,如果您不愿意开放SFTP的话,将最后一行批注掉即可!
另外,如果你修改过上面这个档案(/etc/ssh/sshd_config),那么就必需要重新激活一次sshd这个daemon才行!
亦即是:
/etc/rc.d/init.d/sshdrestart
制作不用密码可立即登入的ssh用户:
咦!
既然SSH可以使用Key来比对资料,并且提供使用者资料的加密功能,那么可不可能利用这个Key就提供使用者自己进入主机,而不需要输入密码呢?
好主意!
我们可以将Client产生的Key给他拷贝到Server当中,所以,以后Client登入Server时,由于两者在SSH要联机的讯号传递中,就已经比对过Key了,因此,可以立即进入数据传输接口中,而不需要再输入密码呢!
在实作上的步骤可以是:
1.首先,先在Client上面建立PublicKey跟PrivateKey这两把钥匙,利用的指令为ssh-keygen这个命令;
2.再来,将PrivateKey放在Client上面的家目录,亦即$HOME/.ssh/,并且修改权限为仅有该User可读的状态;
3.最后,将那把PublicKey放在任何一个你想要用来登入的主机的Server端的某User的家目录内之.ssh/里面的认证档案即可完成整个程序。
说是好象很困难的样子,其实步骤真的很简单,我们依序来进行作业好了!
假设前提:
a.Server部分为test.linux.org这部192.168.0.2的主机,欲使用的User为test这个帐号;
b.Client部分为test2.linux.org这部192.168.0.100PC的test2这个帐号,他要用来登入
192.168.0.2这部主机的test这个帐号。
也就是说,我在192.168.0.100这部机器的身份为test2,但是我想以test的身份登入192.168.0.2这部主机,并且希望不要使用密码!
这样可以了解大前提了吗?
好了,我们就一步一步来作吧!
1.在Client端建立Public与PrivateKey:
建立的方法真的是简单到不行!
直接在192.168.0.100这个Client上面,以test2这个帐号,使用ssh-keygen这个指令来进行Key的产生即可!
不过,需要注意的是,version1与version2使用的密码演算方式不同,此外,version2提供两个密码演算的方法,我们这里仅针对version2的RSA这个演算方法进行说明!
请注意上面喔,我的身份是test2,所以当我执行ssh-keygen时,才会在我的家目录底下的.ssh/这个目录里面产生所需要的两把Keys,分别是私钥(id_rsa)与公钥(id_rsa.pub)。
另外一个要特别注意的就是那个id_rsa的档案权限啦!
他必须要是-rw-------才好!
否则内容被人家知道了,那么你的Keys不就有可能外泄了?
所以请特别留意他的权限喔!
那么那个id_rsa.pub则是『公钥!
』这个档案必须要被放置到Server端才行!
2.在Client端放置私钥:
在预设的条件中,我们的私钥必需要放置在家目录底下的.ssh里面,那么如果是version2的RSA算法,就需要放置在$HOME/.ssh/id_rsa当中!
咦!
刚好使用ssh-keygen就是已经产生在这个目录下了,所以自然就不需要去调整他了!
以我的test2.linux.org来看,那么我的档案就会放置在/home/test2/.ssh/id_rsa这个档案就是私钥啦!
3.在Server端放置可以登入的公钥:
既然我们要让test2可以以test这个帐号登入test.linux.org这部主机,那么这部主机自然需要保有test2的publickey啰!
对的!
所以我们必需要将Client端建立的id_rsa.pub档案给他拷贝到test.linux.org里头的test这个使用者的家目录之下!
那么如果你还记得上面的sshd_config这个档案的设定的话,那么应该就记得『AuthorizedKeysFile』这个设定吧!
是的!
在被登入的主机的某个帐号,他的公钥放置的文件名称预设就是这个项目所记载的!
而他预设的档名就是authorized_keys这个文件名称啦!
那么应该怎么做呢?
请注意上面的机器!
由于authorized_keys可以保存相当多的公钥内容,因此,可以使用>
>
的方式来将Client端的公钥新增到该档案内!
做完这一步一后,未来test2就可以直接在test2.linux.org以
这样就可以不需要输入密码啰!
但是请注意,test不能以test2登入test2.linux.org喔!
很简单的步骤吧!
这样一来,就可以不需密码的手续了!
无论如何,你要记得的是,Server需要有的是PublicKeys,而Client端的则是PrivateKeys!
则未来,当你还想要登入其它的主机时,只要将你的publickey(就是id_rsa.pub这个档案)给他copy到其它主机上面去,并且新增到某帐号的.ssh/authorized_keys这个档案中!
哈哈!
成功!
安全设定:
好了,那么关于安全的设定方面,有没有什么值得注意的呢?
当然是有啦!
我们可以先建议几个项目吧!
分别可以由:
o/etc/ssh/sshd_config
o/etc/hosts.allow,/etc/hosts.deny
oiptables
这三方面来着手进行!
底下我们就说一说吧!
/etc/ssh/sshd_config
一般而言,这个档案的预设项目就已经很完备了!
所以,事实上是不太需要更动他的!
但是,如果您有些使用者方面的顾虑,那么可以这样修正一些问题呢!
o禁止root的登入:
任何时候,不许root以远程联机的方式登入,都会是一个好主意!
所以这里蛮建议大家直接将root的登入权限拿掉吧!
所以,可以修改/etc/ssh/sshd_config这个档案的内容为:
如此一来,以后root就不能以ssh登入啰!
这样还是比较好的啦!
^_^
o不许某个群组登入:
有些特殊情况中,我们想要让使用者只能使用sendmail,pop3,ftp等,但是不希望他可以远程联机进来,那么你可以这样做:
1.将这些使用者都归纳在某一个特殊群组之下,例如nossh这个群组好了;
2.在/etc/ssh/sshd_config当中加入这一行:
『DenyGroupsnossh』
3.重新激活sshd:
/etc/rc.d/init.d/sshdrestart
这样就OK啦!
o不许某个使用者登入:
跟DenyGroups类似,使用DenyUsers即可!
参考sshd_config的设定喔!
/etc/hosts.allow及/etc/hosts.deny:
这东西也是很简单的啦!
直接参考:
简易防火墙架设一文啰!
当然,简单的方法就是:
iptables
多几层保护也很好的!
所以也可以使用iptables
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 下ssh 服务配置 ssh 服务 配置