SSH服务

远程控制服务:配置sshd服务、 安全密钥验证、远程传输命令
不间断会话服务:管理远程会话、会话共享功能

远程控制服务

  • linux中一切皆是文件,配置服务即是对配置文件进行修改
  • 主配置文件:最重要的配置文件
    一般情况下在/etc/服务名称/服务名称.config
  • 普通文件:主要被调用,常规参数

(一)配置sshd服务

想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。

一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果想让新配置文件生效,则需要手动重启相应的服务程序。最好也将这个服务程序加入到开机启动项中,这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。

  1. 查看主配置文件
1
cat /etc/ssh/sshd_config
  1. Xshell远程登陆服务器,此时是需要密码验证的。
1
ssh 192.168.12.136
  1. 修改主配置文件内容如下,使得不可以通过root用户方式远程登陆服务器。
1
vim /etc/ssh/sshd_config
  1. 在此远程连接服务器,发现依然可以通过root用户方式远程登陆服务器。
1
ssh 192.168.12.64
  1. 重启服务
1
2
3
#这里以sshd服务为例
systemctl restart sshd
systemctl enable sshd
  1. 再次进行远程登陆
1
ssh 192.168.12.64

每次输入密码后,会再次弹出界面框要求输入密码,进入死循环。。。。。。

(二)安全密钥验证

  1. 客户端主机中生成“密钥对”
1
ssh-keygen
  1. 把客户端主机生成的公钥文件传送至远程主机
1
ssh-copy-id 116.63.129.7
  1. 查看服务器端认证的文件
1
cat /root/.ssh/authorized_keys
  1. 客户端登陆服务端
1
ssh 116.63.129.7

此时就会发现,客户端远程访问服务器就不需要密码登陆了。因为密钥的优先级是高于密码的。这样是不是很方便呢?嘿嘿😁

而且,密钥方式登陆更安全哦!😊

  1. 修改服务器端配置文件,使其只支持密钥方式登陆
1
2
#注意啦,一定要是服务器端的配置文件
vim /etc/ssh/sshd_config
  1. 重启相应服务
1
systemctl restart sshd
  1. Xshell远程登陆服务器(验证)
1
ssh 116.63.129.7

登陆界面默认无法输入密码!

注意啦,有对应私钥的客户端无需密码即可登陆拥有对应公钥的服务端

远程传输命令

scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令。

  1. 将客户端文件传给服务器端
1
2
3
#一下操作在客户端进行
echo "this is a test about scp">scptest
scp /root/scptest 116.63.129.7:/home
  1. 进入服务器端进行查看
1
cat /home/scptest
  1. 将服务器端文件传给客户端
1
2
#以下操作在服务器端进行
echo "This is the message from server">fromserver
  1. 进入客户端进行文件下载和查看
1
2
scp 116.63.129.7:home/fromserver /root
cat /root/fromserver

不间断会话服务

首先配置yum仓库

管理远程会话

screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参数恢复指定会话;用-x参数一次性恢复所有的会话;用-ls参数显示当前已有的会话;以及用-wipe参数把目前无法使用的会话删除

  1. screen服务介绍
1
2
#创建一个会话框test
screen -S test
1
2
#查看系统当前的会话
screen -ls
1
2
#退出当前会话
exit
  1. screen实战一
1
2
#创建TEST会话框,会发现屏幕闪跳了以下
screen -S TEST
1
2
3
4
ls
cd /bin
cd /roo/biosoft
ls

当前界面如下

此时将终端kill掉,模拟远程连接过程中网络出错

1
2
screen -ls
screen -r TEST #恢复离线的对话框

此时就会恢复到上一次发生事故时的界面

  1. screen实战二

有时候在编辑文件时,文件内容还未及时保存,远程连接出现问题。这个时候screen服务就会🌟发光发热🔥

1
screen vim test.txt

此时将终端kill掉,模拟远程连接过程中网络出错

1
2
screen -ls
screen -r 10777

会话共享功能

  1. 终端A远程连接服务器+创建会话

    ssh服务将终端A远程连接到服务器(这里假装连接了,其实就是连接到本地的虚拟机,为了方便展示)

1
2
3
4
#连接
ssh 192.168.12.136
#创建会话框
screen -S test
  1. 终端B远程连接服务器+同步
1
2
ssh 192.168.12.136
screen -x

此后,终端A和终端B就同步画面啦

参考资料

ssh配置文件ssh_config和sshd_config区别

远程控制服务_文字版

远程控制服务_视频版