远程控制服务(sshd)

配置sshd服务

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前,一般使用FTP或Telnet来进行远程登录。但是因为它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。

想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法

基于口令的验证—用账户和密码来验证登录;
基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。

服务的配置文件的保存路径及命名:

主配置文件:/etc/服务名称/服务名称.conf
普通文件:/etc/服务名称

“Linux系统中的一切都是文件”,因此在Linux系统中修改服务程序的运行参数,实际上就是在修改程序配置文件的过程。sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。
sshd服务配置文件中包含的参数以及作用

参数 	                            作用
Port 22 	                        默认的sshd服务端口
ListenAddress 0.0.0.0 	            设定sshd服务器监听的IP地址
Protocol 2 	                        SSH协议的版本号
HostKey /tc/ssh/ssh_host_key 	    SSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key 	SSH协议版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_key 	SSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes 	            设定是否允许root管理员直接登录
StrictModes yes 	                当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6 	                    最大密码尝试次数
MaxSessions 10 	                    最大终端数
PasswordAuthentication yes 	        是否允许密码验证
PermitEmptyPasswords no 	        是否允许空密码登录(很不安全)

实例:配置sshd服务,禁止以root管理员身份远程登录服务器

ssh  192.168.10.10           #远程登录主机192.168.10.10,本机也可以用ssh登录本机
exit                        #退出登录
vim  /etc/ssh/sshd_config    #修改sshd主配置文件
48 PermitRootLogin no       #修改48行的参数为no,表示不允许root管理员远程登录
systemctl  restart  sshd      #重启sshd服务
systemctl  enable  sshd       #把sshd服务加入到开机启动项中
ssh  192.168.10.10           #用root登录,提示Permission denied

修改服务端口

vim  /etc/ssh/sshd_config
		#port  22					#修改端口号(去掉#,将22改为所需端口,17行左右)
systemctl  restart  sshd
systemctl  enable  sshd
setenfore  0
systemctl  restart  sshd
iptables  -F
systemctl  restart  sshd

安全密钥验证
加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。

一言以蔽之,在生产环境中使用密码进行口令验证终归存在着被暴力破解或嗅探截获的风险。如果正确配置了密钥验证方式,那么sshd服务程序将更加安全。
配置ssh以密钥方式验证步骤:
1.在客户端主机(192.168.10.20)生成“密钥对”(生成公钥和私钥)。
2.在客户端中把生成的公钥传送给服务端(192.168.10.10)。
3.在服务端,修改sshd配置文件,使其只允许密钥验证,拒绝口令验证。修改后重启sshd服务。
4.在客户端远程登录服务器测试是否配置成功。

ssh-keygen                      #客户端操作。生成“密钥对”(公钥和私钥)。会有3次确认,直接回车就行(第一次确定为密钥保存位置)
ssh-copy-id 192.168.10.10       #客户端操作。把生成的公钥文件传送给服务端。会提示是否继续连接,yes。还会提示要求输入服务端的root密码
vim /etc/ssh/sshd_config        #服务端操作。修改ssh服务配置文件
		78行  PasswordAuthentication no    #服务端操作。拒绝口令验证
systemctl restart sshd          #服务端操作。重启sshd服务
ssh 192.168.10.10               #客户端操作。尝试远程登录服务端主机

远程传输命令
scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程IP地址:远程目录”
cp命令只能在本地硬盘中进行文件复制,而scp不仅能够通过网络传送数据,而且所有的数据都将进行加密处理。例如,如果想把一些文件通过网络从一台主机传递到其他主机,这两台主机又恰巧是Linux系统,这时使用scp命令就可以轻松完成文件的传递了。
scp命令中可用的参数及作用

参数作用
-v显示详细的连接进度
-P指定远程主机的sshd端口号
-r用于传送文件夹
-6使用IPv6协议

在使用scp命令把文件从本地复制到远程主机时,首先需要以绝对路径的形式写清本地文件的存放位置。如果要传送整个文件夹内的所有数据,还需要额外添加参数-r进行递归操作。然后写上要传送到的远程主机的IP地址,远程服务器便会要求进行身份验证了。当前用户名称为root,而密码则为远程服务器的密码。如果想使用指定用户的身份进行验证,可使用用户名@主机地址的参数格式。最后需要在远程主机的IP地址后面添加冒号,并在后面写上要传送到远程主机的哪个文件夹中。只要参数正确并且成功验证了用户身份,即可开始传送工作。
由于scp命令是基于SSH协议进行文件传送的,如果客户端和服务端设置好了密钥验证,则在传输文件时,并不需要账户和密码。
实例: 在客户端创建一个文本文件A,上传到服务端,再从服务端新建文本文件B,从客户端中把服务端的B下载下来

echo "welcome" >> B.txt                               #服务端操作。新建一个文本文档B.txt
echo "to  1935" >> A.txt                              #客户端操作。新建一个文本文档A.txt
scp  /root/Desktop/A.txt  192.168.10.10:/root/Desktop    #客户端操作。把文件A上传给服务端的/root/Desktop路径下
scp  192.168.10.10:/root/Desktop/B.txt /etc             #客户端操作。把服务端的B文件下载到本机的/etc目录下

不间断会话服务

当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断。
screen是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还可以使用screen服务程序同时在多个远程会话中自由切换,能够做到实现如下功能:
会话恢复: 即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。
多窗口: 每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
会话共享: 当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。
安装screen程序(前提是配置好Yum仓库):yum install -y screen
screen命令: 用于管理远程会话
screen常用参数

参数作用
-S创建会话窗口
-d将指定会话进行离线处理
-r恢复指定会话
-x一次性恢复所有会话
-ls显示当前已有会话
-wipe把目前无法使用的会话删除

管理远程会话

screen  -S  backup             #创建会话backup
screen  -ls                   #查看已有会话,发现会话backup处于连接()状态
exit                         #退出会话backup
screen  vim  memo.txt          #在创建会话的同时执行编辑文件memo.txt的命令,命令执行完毕后screen会话也会自动结束
heheda                       #写入文本内容
screen  -S  linux              #创建会话linux
tail  -f  /var/log/messages    #在会话linux里执行该命令,故意强行关闭会话窗口
screen  -ls                   #重新打开命令行窗口,查看已有会话,发现会话linux处于断开(Detached)状态
screen  -r  linux              #恢复会话linux,可以发现刚刚关闭窗口导致中断的命令可以继续执行

会话共享功能
screen命令不仅可以确保用户在极端情况下也不丢失对系统的远程控制,保证了生产环境中远程工作的不间断性,而且它还具有会话共享、分屏切割、会话锁定等实用的功能。其中,会话共享功能是一件很酷的事情,当多个用户同时控制主机的时候,它可以把屏幕内容共享出来,也就是说每个用户都可以看到相同的内容
实例: 客户端A(192.168.10.20)远程登录到服务端(192.168.10.10),创建一个screen会话,然后客户端B(192.168.10.30)远程登录到服务端,执行screen -x(获取远程会话)。两台客户端就可以看到相同内容

ssh 192.168.10.10    #客户端A操作。远程登录到服务端(192.168.10.10)
screen -S test       #客户端A操作。创建一个screen会话
ssh 192.168.10.10    #客户端B操作。远程登录到服务端
screen -x            #客户端B操作。获取远程会话
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值