linux下ssh服务配置.docx

上传人:b****3 文档编号:4795946 上传时间:2022-12-09 格式:DOCX 页数:18 大小:595.15KB
下载 相关 举报
linux下ssh服务配置.docx_第1页
第1页 / 共18页
linux下ssh服务配置.docx_第2页
第2页 / 共18页
linux下ssh服务配置.docx_第3页
第3页 / 共18页
linux下ssh服务配置.docx_第4页
第4页 / 共18页
linux下ssh服务配置.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

linux下ssh服务配置.docx

《linux下ssh服务配置.docx》由会员分享,可在线阅读,更多相关《linux下ssh服务配置.docx(18页珍藏版)》请在冰豆网上搜索。

linux下ssh服务配置.docx

linux下ssh服务配置

实现远程控制linux系统和实现linux系统文件共享

 telnet不是很安全,那么我又需要以远程联机服务来操控我的Linux主机,那么应该怎么办呀!

最好的方法当然就是以较为安全的联机机制的方案来解决联机的问题!

那么该如何解决这样的问题呢?

这也不难啦,使用SSH即可。

那么SSH是什么呢?

他有什么特异功能?

简单的来说,SSH是SecureSHellprotocol的简写,他可以经由将联机的封包加密的技术,来进行资料的传递,因此,资料当然就比较安全啰!

这个SSH可以用来取代Internet上面较不安全的finger,RShell(rcp,rlogin,rsh等指令),talk及telnet等联机模式。

底下我们将先简介一下SSH的联机模式,来说明为什么SSH会比较安全呢!

特别注意:

这个SSH协议,在预设的状态中,本身就提供两个服务器功能:

1.一个就是类似telnet的远程联机使用shell的服务器,亦即是俗称的ssh;

2.另一个就是类似FTP服务的sftp-server!

提供更安全的FTP服务。

·(备注:

联机加密技术简介:

 基本上,加密的技术通常是藉由所谓的『公钥与私钥』亦即『PublicandPrivatekeys』来进行加密与解密的动作!

如下图所示,当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这种类型的联机软件,他也是免费的软件!

直接从XX就能搜索到,都是免费使用的。

  好了,那么要取得哪几个程序呢?

其实只要putty.exe及psftp.exe这两支程序就够了!

分别用来登录linuxshell及FTP。

oputty:

  1、直接在Windows底下执行,执行的图标有点像底下这样:

  这个时候请注意,由于我们比较喜欢将固定的几个主机的IP记录下来,所以在这里我们需要先进行一些基本的设定才行!

在上图中,我们需要填写:

(1)HostName(orIPaddress)远程主机IP地址

(2)SavedSessions为连接取个好记的名字,

(3)选择SSH那个选项!

 以我的区域内网络为例,我可以写成这个模样:

  请千万记得,填写完毕之后,一定要按下右边的『Save』按键,这样你的设定才会被记录下来!

接下来,我们要设定的是每次登入的时候,都会进行记录的项目,所以,你可以在左边的画面上面按下『Logging』然后将右边的『Alwaysappendtotheendofit』,这样才不会每次登入的时候,系统都要问你一次,是否需要记录!

  2、接着下来,我们还可以调整整个putty的屏幕大小!

以下图为例,我设定我的登入画面为40行与100个字符!

这样的画面比起传统的24*80要大的多,看起来也比较舒服就是了,1000表示我的滚动条有1000行的纪录,可以方便我往前查询!

  调整完了屏幕的3、调整完大小之后,再来这是最重要的:

『你要以第几个SSHversion进入?

』前面说过,我们预设是以version2来登入的,所以这里我们可以调整为2那个项目!

这样每次登入都会以version2的模式登入主机了!

  

4、已经都设定完毕了,请回到『Session』的设定里面,再按下一次『Save』,这个时候在中间的大框框就会出现你输入的记录名称,然后,以后要登入SSH主机时,就直接给他点两下test.linux.org那个(就是你刚刚自行设定的纪录名称),就可以进入你所点选的主机了!

  PUTTY设置完毕:

整个putty大致上的流程就是这样!

如此一来,您就可以在Windows上面以SSH的协议,登入远程的Linux主机噜!

粉方便吧!

^_^!

如果还要其它的设定,那么就直接修改SavedSessions与HostName这两个项目,然后再次给他Save,嘿嘿!

就又多一个设定值了!

而且还是跟刚刚的设定值相同!

很容易设定的啦!

设置好putty之后,别忘记设置linux系统的sshd服务,/etc/ssh/sshd_config是一个全部注释得文件,去掉注释PermitRootLogin=yes  就可以用root登陆了。

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喔!

参考:

简易防火墙架设一文啰!

  基本上,SSH还蛮安全的,只要取消root的登入权限,那么问题应该就会比较小一点啦!

所以,虽然可以不用设定iptables,但是建议针对几个网域设定一下/etc/hosts.allow与/etc/hosts.deny!

加油啰!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1