一.远程连接服务器简介
(1).什么是远程连接服务器
远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录
linux
主机以取得可操
作主机接口(
shell
),而登录后的操作感觉就像是坐在系统前面一样。
1.远程连接服务器的功能
分享主机的运算能力
2.远程连接服务器的类型(以登录的连接界面来分类)
文字接口
明文传输:
Telnet
、
RSH
等,目前非常少用
加密传输:
SSH
为主,已经取代明文传输
图形接口:
XDMCP
、
VNC
、
XRDP
等
文字接口连接服务器
SSH
(
Secure Shell Protocol
,安全的壳程序协议)它可以通过数据包加密技术将等待传输的数据包加密
后再传输到网络上。
ssh
协议本身提供两个服务器功能:一个是类似
telnet
的远程连接使用
shell
的服务
器;另一个就是类似
ftp
服务的
sftp-server
,提供更安全的
ftp
服务
二.SSH协议
SSH
(
Secure Shell
),安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传
输验证,可以在不安全的网络中对网络服务提供安全地传输环境,实现
SSH
客户端和
SSH
服务器的连接,
所以
SSH
是基于客户端
-
服务器模式。
(1).功能作用
通过使用
SSH
,可以把所有传输的数据进行加密,这样
“
中间人
”
这种攻击方式就不可能实现,而且也能够
防止
DNS
欺骗和
IP
欺骗。还有一个好处就是,传输的数据是经过压缩的,所以可以加快传输的速度。
SSH
有很多功能,它既可以替代
Telnet
,又可以为
FTP
、
Pop
,甚至为
PPP
提供和一个安全的
“
通道
”
。
(2).服务组成
SSH
服务由服务端软件
OpenSSH
和连接客户端(
SSH
、
SecureCRT
、
xshell
等)组成,默认端口是
22
。
SSH
是一个守护进程,负责实时监听客户端请求,并进行处理。
(3).ssh常用加密方法
1.对称加密(密码加密)
对称加密的原理非常简单,假如计算机Client要发送一段文字给计算机Server,但是又不想让别人知道,最简单的办法就是,使用一大段密码进行加密,让别人不知道什么意思,这里术语就叫密钥,然后加密过后的文字通过网络发送给计算机Server之后,计算机Server为了读懂这段文字,这时就需要之前的密钥进行解密。
2.非对称加密(密钥加密)
本地主机向远程主机发送登录请求,远程主机收到请求后,返回给本地主机一个随机字符串A,本地主机用私钥加密字符串A得到密文B,并把密文B发送给远程主机,远程主机用公钥解密密文A得到字符串B,并判断A是否等于B,如果相等,则认证成功,反之,则反之。 不再要求使用密码登录,以公私钥的方式实现免密登录。
三.SSHD服务
(1).客户端 ssh 命令的用法
以ip192.168.47.100为客户端,192.168.47.200为服务端
命令 ssh -l root 192.168.47.200
(2).命令参数
1.-X #开启图形
可以登录服务端后打开firefox(火狐)浏览器图形界面
2.-f #后台运行
可以直接通过命令在后台打开firefox浏览器
3.-o #指定连接参数
"StrictHostKeyChecking=no"
首次连接不许要输入
yes
4.-t #指定连接跳板
举例:以192.168.47.100为跳板连接到192.168.47.200中
四.sshd服务的安全优化
(1).对称加密安全优化
删除ssh_host_*文件并重启服务
此时再通过客户端访问连接服务端就不被允许
如果想再次登录服务端只需要根据提醒删除/root/.ssh/know_hosts文件
(2).非对称加密安全优化
1.生成密钥
在客户端生成密钥
命令:ssh-keygen
Enter file in which to save the key (/root/.ssh/id_rsa): 输入保存密钥文件
Enter passphrase (empty for no passphrase): 密钥密码
Enter same passphrase again: 确认密码
Your identification has been saved in /root/.ssh/id_rsa. 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. 公钥
2.上传密钥到服务器
命令:ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.47.200
3.查看服务端生成/root/.ssh目录并且生成了密钥文件
4.通过客户端登陆服务器
不需要密码验证
(3).非对称加密安全优化配置文件
可以在此配置文件(/etc/sshd/)中修改
注:每次修改完配置文件都要重启sshd服务:systemctl restart sshd
1.PermitRootLogin
yes|no #对超级用户登陆是否禁止
将此处改为no,客户端则不能登录服务端的root(超级用户)
此时客户端即使输对密码没有权限登录root用户
2.PasswordAuthentication
yes|no #是否开启原始密码认证方式
设置为no为禁止用户密码登录
此时用客户端不能登录
设置为yes
此时用客户端输入密码登录
3.DenyUsers(手动添加)
#用户黑名单
添加黑名单xiaobai用户此时客户端就不能远程连接xiaobai
4.AllowUsers(手动添加)
#用户白名单
添加白名单xiaobai用户此时客户端可以远程连接xiaobai