Linux服务器ssh远程管理


SSH远程管理
linux

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。SSH协议对通讯双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,与早期的telnet(远程管理),rsh(Remote Shell ,远程执行命令),rcp(远程复制文件)等应用相比,SSH协议提供了更好的安全性。算法

 

  1. 配置OpenSSH服务端数据库

在RHEL 5系统中,OpenSSH服务器由openssh,openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行"service sshd start"命令便可按默认配置启动sshd服务,包括root在内的大部分用户(只要拥有合法的登录Shell)均可以远程登录系统。windows

Sshd服务的配置文件默认位于/etc/ssh/sshd_config,正常调整相关配置项,能够进一步提升sshd远程登录的安全性。下面介绍最经常使用的一些配置项,关于sshd_config文件的更多配置可参考man手册页。安全

1. 服务监听选项服务器

    Sshd服务使用的默认端口好为22,必要时建议修改此端口号,并指定监听服务的具体ip地址,以提升在网络中的隐蔽性,除此以外,SSH协议的版本选用V2比V1的安全性更好,禁用DNS反向解析能够提升服务器的响应速度。网络

修改配置文件后须要从新加载文件:service sshd reloadapp

服务器默认配置以下ssh

2.用户登录控制工具

    Sshd服务默认容许root用户登录,当在linternet中使用时这是很是不安全的,更广泛的作法是,先以普通用户远程登入,进入安全Shell环境后,根据实际须要使用su命令切换为root用户。

    关于sshd服务的用户登录控制,一般应禁止root用户或密码为空的用户登录,另外能够限制登陆验证的时间(默认为2分钟)和最大重试次数,若超过限制后仍未能登录则断开链接。

    当但愿之容许或禁止某些用户登录时,可使用AllowUsers或DenyUsers配置,二者用法相似(注意不要同时使用)。例如:若只容许jerry和admin用户登录,而且admin用户仅可以从ip地址为61.23.24.25的主机远程登录,能够参考如下操做。

AllowUsers jerry admin@61.223.24.25 //多个用户以空格分隔

 

3.    登录验证方式

    对于服务器的远程管理来讲,除了用户帐号的安全控制之外,登录验证的方式也很是重要,sshd服务支持两种验证方式——密码验证,密钥对验证。能够设置只使用其中以正方式,也能够两种方式都启用。

  • 密码验证:以服务器中本地系统用户的登陆名称,密码进行验证。这种方式使用最为简便,但冲客户机角度来看正在链接的服务器有可能被冒充,从服务器角度看当遭遇密码穷举(暴力破解)攻击时防护能力比较弱。

  • 密钥对验证:要求提供相匹配的密钥信息才能经过验证,一般先在客户机中建立一对密钥文件(公钥,私钥),而后将公钥文件放到服务器中的指定位置,远程登录时,系统将使用公钥,私钥进行加密/解密关联验证,大大加强了远程管理的安全性。

    当加密验证,密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求比较高的服务器,建议将密码验证方式禁用,只容许密钥对验证方式;若没有特殊要求,则两种方式均可以启用。

 

Service sshd reload 一样须要从新加载配置文件便可生效。

5.1.2     使用SSH客户端程序

    在RHEL 5系统中,OpenSSH客户端由openssh-cliente软件包提供(默认已安装),其中包括ssh远程登陆命令,以及scp,sftp远程复制和文件传输命令等,实际上,任何支持SSH协议的客户端程序均可以与OpenSSH服务器进行通讯,例如:windows平台中的PuttyCN,WinSCP,SecureCRT等图形工具。

注意:若是默认端口22被改成其它端口,使用时应以上选项指定端口号。

  1. 命令程序ssh ,scp ,sftp

1)ssh远程登录

    经过ssh命令能够远程登陆到sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登录用户,目标主机地址做为参数。例如:若要登录主机192.168.4.254,以对方的tsergyia用户进行验证,能够执行如下操做。

Ssh tsergyia@192.168.4.254

Yes //接受密钥

123456 //输入用户密码

    当用户第一次登陆SSH服务器时,必须接受服务器发来的RSA密钥(根据提示输入yes)后才能继续验证,接收的密钥信息将保存到~/.ssh/known_hosts文件中(保存在客户机中),密钥验证成功之后,就登录到目标服务器的命令环境中了,就比如把客户机的显示器,键盘链接到服务器上同样。

Whoami //确认当前用户

/sbin/ifconfig eth0 //确认是不是服务器ip地址

    若是sshd服务器使用了非默认的端口号(如2345),则在登陆时必须经过"-p"(小写)选项指定端口号。例如:一下操做将访问主机192.168.4.22的2345端口,以对方为jerry用户验证登陆。

Ssh -p 2345 jerry@192.168.4.22

 

2)scp远程复制

    经过scp命令能够利用SSH安全链接与远程主机相互复制文件,使用scp命令时,除了必须指定复制源,目标之外,还应指定目标主机地址,登陆用户,执行后提示验证口令便可。例如:如下操做分别演示了下行,上行复制的操做过程,将远程主机中的/etc/passwd文件复制到本机,并将本机的/etc/vsftpd/目录复制到远程主机。

下行:Scp root@192.168.4.254:/etc/passwd(源) /root/pwd254.txt(目的)

注意:目标主机用户root(要容许ssh登陆),(注意root用户要有读取权限)

上行:scp -r(目录) /etc/vsftpd/(源) root@192.168.4.254:/opt/(目的)

注意:用户仍是远程主机用户,要能有写入权限

 

3)sftp安全FTP

    经过sftp命令能够利用SSH安全链接与远程主机上传,下载文件,采用了与FTP相似的登陆过程和交互式环境,便于目录资源管理。例如:如下操做依次演示了sftp登陆,浏览,文件上传等过程。

Sftp root@192.168.4.244 //登录

Ls //查看(远程主机)

!ls //查看(bending客户机)

Put(或mput) /boot/config-2.3.18-194.el5 //上传文件

Get(或mget)                              //下载文件

Bye                                             //退出

 

  1. 图形工具PuttyCN,WinSCP

1)PuttyCN远程登录

    Putty是一款瓶盖的Telnet/SSH图形客户端软件,可以在windows 32平台模拟xterm终端环境,主要做品为Simon Tatham,PuttyCN是对应的中文版。

    使用PuttyCN时,只需运行主程序putty.exe,而后再窗口中指定远程主机的ip地址,端口号等相关信息,以下图所示,再单击"打开"按钮,根据提示接受密钥,验证密码后便可成功登陆到目标主机。

步骤一:输入目标服务器的ip地址,端口号链接类型,点击"打开"

步骤二:在弹出的窗口中单击"是",表示接受密钥

步骤三:输入远程服务器的用户名和密码,验证成功后便可登陆。

 

2)WinSCP远程复制

    Winscp是一款用于widnows平台的SSH图形客户端软件,用来经过SCP,SFTP方式在本地与远程计算机之间安全的复制文件。WinSCP的官方网站位于http://winscp.net,建议下载.zip格式的免安装包。

    使用WinSCP时,只须要运行主程序WinSCP.exe。而后在窗口中指定远程主机的ip地址,端口号等相关信息,以下图所示,再单击"登陆"按钮,根据提示接受密钥,验证密码后便可成功链接到目标主机,操做界面与常见的FTP客户软件相似。

    因为PuttyCN,WinSCP都提供了中文界面,功能和操做比较简单,所以这里再也不对着两款软件作深刻研究。

 

5.1.3 构建密钥对验证的SSH体系

    正如前面所说起的,密钥对验证方式能够为远程登陆提供更好的安全性,下面将学习在linux服务器,客户端中构建密钥对验证SSH体系的基本过程,如图所示。

  1. 在客户端建立密钥对

    在linxu客户机中,经过ssh-keygen工具为当前用户建立密钥对文件,可用的加密算法为RSA或DSA("ssh-keygen"命令的"-t"选项用于指定算法类型)。例如:以zhangsan用户登陆到客户机,并生成基于RSA算法的SSH密钥对(公钥。私钥)文件,操做以下:

    Ssh-keygen -t rsa

    ---------------------------------.//指定私钥位置

    --------------------------------//设置私钥短语

    -------------------------------//确认所设置的短语

        上述操做过程当中,提示指定私钥文件的存放位置时,通常直接按Enter键便可,最后生成的私钥,公钥文件默认存放在宿主目录中的隐藏文件夹.ssh/下,私钥短语用来对私钥文件进行保护,当使用该私钥验证登陆时必须正确提供此处所设置的短语。尽管不设置私钥短语也是能够的(实际无口令登录),但从安全假赌考虑不建议这么作。

    Ls -lh ~/.ssh/id_rsa* //确认生成的密钥文件

    新生成密钥对文件中,id_rsa是私钥文件,权限默认为600,对于私钥文件必须妥善保管,不能泄露给他人,id_rsa.pub是公钥文件,用来提供给SSH服务器。

2.将公钥文件上传至服务器

将上一步的公钥文件发送给服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时能够选择FTP,samba,HTTP甚至发送E-mail等任何方式,例如:能够经过scp方式将文件上传至服务器的/tpm/目录中。

Scp ~/.ssh/id_rsa.pub root@192.168.4.254:/tmp/(用户可以登录ssh)

3.在服务器中导入公钥文本

    在服务器中,目标用户(指用来远程登陆的帐号)的公钥数据库位于~/.ssh/目录,默认的文件名是authorized_keys。当得到客户机发送过来的公钥文件之后,能够经过重定向将公钥文本内容追加到目标用户的公钥数据库中。

权限更改:chown lisi:lisi .ssh/

            Chmod 700 .ssh/

    在公钥库authorized_keys文件中,最关键的内容是"ssh-rsa加密字串"部分,当导入非ssh-keygen工具建立的公钥文本时,应确保此部分信息完整。

    因为sshd服务默认采用严格的权限测试模式,所以还须要注意公钥库文件authorized_keys的权限——要求是登陆的目标用户或root,同组或其余用户对该文件不能有写入权限,不然可能没法成功使用密钥对验证

    除此以外,应该确认sshd服务支持密钥对验证方式,具体参考上述登陆验证方式设置。

还有一种方法:

    在客户机操做

    端口必须为22,操做完之后能够更改。

ssh-copy-id -I /root/.ssh/id_rsa.pub zhangsan@192.168.4.254

注释:意思是zhangsan用户也用lisi在客户机上生成的(公钥和私钥)登陆同一台服务器,可以使用此方式。

 

4.在客户端使用密钥对验证

当私钥文件(客户端),公钥文件(服务器)均部署到位之后,就能够在客户机中进行测试了,首先确认客户机中当前的用户为zhangsan,而后经过ssh命令以服务器端用户lisi的身份进行远程登陆,若是密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)

使用密钥对验证的方式登陆时,不须要知道目标用户的密码,而是改成验证客户端用户的私钥短语并检查双方的私钥,公钥文件是否配对,安全性更好。

 

 

  1. TCP Wrappers访问控制

TCP Wrappers机制的保护对象为各类网络服务程序,针对访问服务的客户机地址进行访问控制,对应的两个策略文件为/etc/hosts.allow,/ect/deny,分别用来设置容许和拒绝的策略。

 

  1. 策略的配置格式

    两个策略文件的做用相反,但配置记录的格式相同,以下所示。服务程序列表,客户机地址列表之间以冒号分割,在每一个列表内的多个项之间以逗号分隔。

    1. 服务程序列表

  • ALL,表明全部的服务

  • 单个服务程序。例如:"vsftpd"

  • 多个服务程序组成的列表,例如"vsftpd , sshd"

  1. 客户机地址列表

  • All,表明任何客户机地址

  • Local,表明本地地址

  • 单个ip地址,例如:"192.168.4.1"

  • 网络地址,例如:192.168.4.0/255.255.255.0或192.168.4.

  • 以"."开始的域名,例如".benet.com"匹配benet.com域中的全部主机

  • 潜入通配符"?"号表明一个字符 *表明多个字符

 

  1. 访问控制的基本原则

关于TCP Wrappers机制的访问策略,应用时遵循如下顺序和原则

  • 首先检查/etc/hosts.allow文件,若是找到匹配的策略,则容许访问。

  • 不然则继续检查/etc/hosts.deny文件,若是找到相匹配的策略,则拒绝

  • 若是检查上述两个文件都找不到相匹配的策略,则容许。

  • 若是连个文件中都匹配,hosts.allow生效

 

  1. TCP Wrappers 配置实例

例如:若只但愿从ip地址为61.23.24.25的主机或者位于192.168.2.0/24网段的主机访问sshd服务,其余全部地址将被拒绝,能够执行如下操做。

Vim /etc/hosts.allow

Sshd:61.23.24.25,192.168.2.*

Vim /etc/hosts.deny

Sshd:ALL

 

补充:在windows 7系统中安装PuttyCN客户端,并使用密钥对验证的方式登陆远程的SSH服务器(密钥转换)

步骤一:使用winscp工具将私钥复制到win 7上

步骤二:使用puttygen工具转换私钥——load——在文档中*.*——save private key

步骤三:putty登陆——在左侧ssh中——auth——选择私钥文件——open

步骤四:输入用户名登陆

相关文章
相关标签/搜索