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
?
用户登录控制:?
?sshd 服务默认允许root用户登录,但在Internet中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登入,进入安全Shell环境后.根据实际需要使用su命令切换为root用户.关于sshd 服务的用户登录控制.通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数.若超过限制后仍未能登录则断开连接。
[root@xiao ~]# vim /etc/ssh/sshd_config
[root@xiao ~]# systemctl restart sshd ##修改配置文件后必须重启服务
当希望只允许或禁止某些用户登录时,可以使用AllowUsers或 DenyUsers配置,两者用法类似(不可以同时使用)
例如:若只允许jerry、tsengyia 和admin 用户登录.且其中admin用户仅能够从IP地址为12.12.12.12的主机远程登入(用户之间用空格隔开)
[root@xiao ~]# vim /etc/ssh/sshd_config
AllowUsers jerry tsengyia admin@12.12.12.12
[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 tsengyia@192.168.10.10
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.
tsengyia@192.168.10.10's password: ##输入用户密码
[tsengyia@xiao ~]# whoami ##查看当前用户
tsengyia
?如果sshd 服务器使用了非默认的端口号(如2345),则在登录时必须通过“一p”选项指定端口号。例如,执行以下操作将访问主机192.168.4.22的2345端口,以对方服务器的jerry用户验证登录。
[root@xiao ~]# ssh -p 2345 jerry@172.16.16.22
jerry@172.16.16.22's password: ##输入用户密码
?2 ) scp远程复制
通过scp 命令可以利用SSH 安全连接与远程主机相互复制文件。使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址.登录用户,执行后根据提示输入验证口令即可。
[root@deft ~]# scp root@192.168.223.128:/etc/passwd /root/pwd.txt
//将主机192.168.223.128的/etc/passwd/目录复制到本机/root/改名为pwd.txt
root@192.168.223.128'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/ root@192.168.223.100:/opt
//将本机的/etc/vsftp/目录复制到主机192.168.223.100的/目录并改名opt
3) sftp 安全FTP
通过sftp命令可以利用SSH安全连接与远程主机上传.下载文件,采用了与FTP类似的登录过程和交互式环境.便于目录资源管理。
例如,以下操作依次演示了sftp登录、浏览、文件上传等过程。
[root@xiao ~]# sftp 135@172.16.37.13
135@172.16.37.13'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客户端中.通过ssh---keygen工具为当前用户创建密钥对文件。
[root@xiao ~]# ssh-keygen -t ecdsa
上述操作过程中.提示指定私钥文件的存放位置时.一般直接按Enter键即可.最后生成的私钥.公钥文件默认存放在宿主目录中的隐藏文件夹.ssh 下。
[root@xiao ~]# ls -lh ~/.ssh/id_ecdsa* ##确认生成的密钥文件
将公钥文件上传至服务器
将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择SCP、FTP、Samba、HTTP甚至发送E-mail等任何方式。例如,可以通过SCP方式将文件上传至服务器的/tmp目录下。
[root@xiao ~]# scp ~/.ssh/id_ecdsa.pub root@192.168.10.10:/tmp
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!