linux高级管理——远程访问及控制

一、SSH远程管理:

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

1.1 配置OpenSSH服务端

在CentOS 7.3系统中,OpenSSH 服务器由openssh、openssh一server等软件包提供并已将sshd添加为标准的系统服务。执行“systemctl start sshd”命令即可启动shd 服务.包括root在内的大部分用户〈只要拥有合法的登录Shell都可以远程登录系统。

服务监听选项:

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

[root@xiao ~]# vim /etc/ssh/sshd_config 

 linux高级管理——远程访问及控制_第1张图片

用户登录控制: 

 sshd 服务默认允许root用户登录,但在Internet中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登入,进入安全Shell环境后.根据实际需要使用su命令切换为root用户.关于sshd 服务的用户登录控制.通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数.若超过限制后仍未能登录则断开连接。

[root@xiao ~]# vim /etc/ssh/sshd_config 

[root@xiao ~]# systemctl restart sshd   ##修改配置文件后必须重启服务

linux高级管理——远程访问及控制_第2张图片
当希望只允许或禁止某些用户登录时,可以使用AllowUsers或 DenyUsers配置,两者用法类似(不可以同时使用)

例如:若只允许jerry、tsengyia 和admin 用户登录.且其中admin用户仅能够从IP地址为12.12.12.12的主机远程登入(用户之间用空格隔开)

[root@xiao ~]# vim /etc/ssh/sshd_config 

AllowUsers jerry tsengyia [email protected]

[root@xiao ~]# systemctl restart sshd   ##修改配置文件后必须重启服务

 登录验证方式
对于服务器的远程管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式--密码验证.密钥对验证,可以设置只使用其中--种方式,也可以两种方式都启用。

(1)密码验证:对服务器中本地系统用户的登录名称.密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒:从服务器角度来看,当遭遇密码穷举(暴力破解〉攻击时防御能力比较弱。

(2)密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建--对密钥文件(公钥.私钥).然后将公钥文件放到服务器中的指定位置。远程登录时.系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒.且可以免交互登录.在Shell中被广泛使用。

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

[root@xiao ~]# vim /etc/ssh/sshd_config 

[root@xiao ~]# systemctl restart sshd   ##修改配置文件后必须重启服务

1.2 使用SSH客户端程序

命令程序ssh 、scp、sftp

1 ) ssh远程登录
通过ssh命令可以远程登录sshd服务.为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。例如,若要登录主机192.168.10.10.以对方服务器的tsengyia 用户进行验证,可以执行以下操作。

[root@xiao ~]# ssh [email protected]

The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:yqKelQiqzJ51TqdW3DeLqvQXG/g/zWybPdEOoku6llg.
ECDSA key fingerprint is MD5:51:64:c9:86:15:61:3e:8b:ba:76:47:a0:bc:f8:42:b0.
Are you sure you want to continue connecting (yes/no)? yes  ##接受密钥
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
[email protected]'s password: ##输入用户密码

[tsengyia@xiao ~]# whoami   ##查看当前用户
tsengyia

 如果sshd 服务器使用了非默认的端口号(如2345),则在登录时必须通过“一p”选项指定端口号。例如,执行以下操作将访问主机192.168.4.22的2345端口,以对方服务器的jerry用户验证登录。

[root@xiao ~]# ssh -p 2345 [email protected]
[email protected]'s password:    ##输入用户密码

 2 ) scp远程复制
通过scp 命令可以利用SSH 安全连接与远程主机相互复制文件。使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址.登录用户,执行后根据提示输入验证口令即可。

[root@deft ~]# scp [email protected]:/etc/passwd /root/pwd.txt
           //将主机192.168.223.128的/etc/passwd/目录复制到本机/root/改名为pwd.txt
[email protected]'s password: 
passwd                                                                                                                     100% 2404     3.3MB/s   00:00    
[root@deft ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  pwd.txt  u789

[root@lucky ~]# scp -r /etc/vsftpd/ [email protected]:/opt
  //将本机的/etc/vsftp/目录复制到主机192.168.223.100的/目录并改名opt

3) sftp 安全FTP
通过sftp命令可以利用SSH安全连接与远程主机上传.下载文件,采用了与FTP类似的登录过程和交互式环境.便于目录资源管理。

例如,以下操作依次演示了sftp登录、浏览、文件上传等过程。

[root@xiao ~]# sftp [email protected]
[email protected]'s password:
Connected to 172.16.37.13.
sftp> ls
131 133 134 135 263 bdqn

1.3 构建密钥对验证的SSH体系:

正如前面所提及的.密钥对验证方式可以为远程登录提供更好的安全性。下面将介绍在Linux服务器.客户端中构建密钥对验证SSH体系的基本过程。如图10.2所示,整个过程包括四步,首先要在SSH客户端以zhangsan用户身份创建密钥对,并且要将创建的公钥文件上传至SSH服务器端.然后要将公钥信息导入服务器端的目标用户lisi 的公钥数据库,最后以服务器端用户lisi的身份登录验证。

linux高级管理——远程访问及控制_第3张图片

在客户机创建密钥对: 在Linux客户端中.通过ssh---keygen工具为当前用户创建密钥对文件。

[root@xiao ~]# ssh-keygen -t ecdsa

linux高级管理——远程访问及控制_第4张图片

上述操作过程中.提示指定私钥文件的存放位置时.一般直接按Enter键即可.最后生成的私钥.公钥文件默认存放在宿主目录中的隐藏文件夹.ssh 下。

[root@xiao ~]# ls -lh ~/.ssh/id_ecdsa*  ##确认生成的密钥文件

将公钥文件上传至服务器
将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择SCP、FTP、Samba、HTTP甚至发送E-mail等任何方式。例如,可以通过SCP方式将文件上传至服务器的/tmp目录下。

[root@xiao ~]# scp ~/.ssh/id_ecdsa.pub [email protected]:/tmp







 

你可能感兴趣的:(linux,服务器,运维)