Linux进阶——远程连接服务器
一、远程连接服务器简介
(1)什么是远程连接服务器
远程连接服务器就是通过文字或者图接口方式来远程登陆系统,在远程终端前登陆linux主机,取得可操作主机接口,而登陆后的操作感觉就像坐在系统前面一样。
(2)远程连接服务器的功能
分享主机的运算能力
(3)远程连接服务器的类型(以登陆的连接界面来分类)
文字接口:
明文传输:Telnet、RSH等,目前用的非常少
加密传输:SSH为主,已经取代明文传输
图形接口:XDMCP、VNC、XRDP等
(4)文字接口连接服务器
SSH(secure shell protocol,安全的壳程序协议)它可以通过数据包加密技术将等待传输的数据包加密后在传输到网络上。ssh协议本身提供两个服务器功能:一个是类似telnet的远程连接使用shell的服务器;另一个就是类似于ftp服务的sftp-server,提供更加安全的ftp服务。
二、连接加密技术简介
目前常用的网络数据包加密技术通过“非对称密钥系统”来处理的,主要是通过把不一样的公钥与私钥来进行加密和解密的过程。
对称和非对称密钥结合:先用非对称密钥系统传输双方的对称密钥,后续就能使用对称密钥系统
公钥:提供给远程主机进行数据加密的行为,所有人都可以获得你的公钥来数据加密
私钥:远程主机使用公钥进行加密数据,在本地端就能使用私钥进行解密,私钥只有自己拥有。
SSH工作过程:在整个通讯过程中,为实现SSH的安全连接,服务器与客户机经历五个阶段:
过程 | 说明 |
---|---|
版本号协商 | SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本 |
密钥和算法协商 | SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法 |
认证阶段 | SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证 |
会话请求 | 认证通过后,客户端向服务器发送会话请求 |
交互会话 | 会话请求通过后,服务器和客户端进行信息的交互 |
三、SSH配置设置
客户端配置文件地址 /etc/ssh/ssh_config和/etc/ssh/ssh_config.d
服务端配置文件地址 /etc/ssh/sshd_config和/etc/ssh/sshd_config.d
四、防火墙与selinux
防火墙会阻止外部设备访问未开放的端口,关闭防火墙systemctl stop firewalld。
selinux安全强化版的Linux,有两个状态:enforcing管理程序使用哪些端口和文件。
permissive提示程序你正在用哪些端口和文件。
setenforce 1#设置状态为enforcing
setenforce 0#设置状态为permissive
getenforce #查看状态信息
五、用户登陆ssh服务器
实例1:修改ssh服务的端口号
#修改ssh服务的端口号
vim /etc/ssh/sshd_config #修改配置信息
在文件中修改端口号 port 2222
systemctl disable --now firewalld #关闭防火墙
setenforce 0 #设置selinux状态
getenforce #查看状态信息
结果为 permissive
systemctl restart sshd #重启ssh服务
实例2:拒绝root用户远程登陆
#保持服务器上至少有一个可以远程登陆的普通远程账号
#修改配置信息(对于红帽来说修改的是/etc/ssh/sshd_config.d/01-permitrootlogin.conf中的内容)
PermitRootLogin no #不允许root登陆
重启服务查看是否生效:使用时普通用户进行登陆,余姚使用root用户时在切换
使用xshell测试登陆:
root用户登陆不成功,而普通用户登陆成功
实例3:允许特定用户进行登陆:
useradd test01 #新建用户
passwd test01 #设置密码
vim /etc/ssh/sshd_config #修改配置文件
在文件中写入:Allowusers bzy #允许bzy用户登陆其他用户不被允许
使用xshell测试,发现bzy成功登入,其余包括root用户都无法登入。
实例4:Linux客户端通过密钥登陆Linux服务器root用户
①使用客户端192.168.68.130去连接服务端192.168.68.99
#操作客户端
ssh-keygen #创建密钥对
/root/.ssh/id_rsa #私钥文件
/root/.ssh/id_rsa.pub #公钥文件
ssh-copy-id root@192.168.68.99 #复制公钥文件到服务端的该目录下面/root/.ssh/authorized_keys
ssh root@192.168.68.99 #在本地服务器上登陆对端服务器(无需密码)
②xshell中使用密钥登陆:
1、建立公私钥
2、复制公钥内容
3、粘贴到/root/.ssh/authorized_keys中
4、验证登陆是否成功