首页 > 技术文章 > ssh远程安全管理

wang-yy 2020-03-10 17:44 原文

一、定义

​	ssh是一个建立在应用层上的安全远程管理协议,是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。

​	ssh可用于大多数UNIX和类UNIX操作系统中,能够实现字符界面的远程登录管理,它默认使用22端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet协议,具有更高的安全性。

二、ssh的登录验证模式

​1、账户密码验证

​	1)客户端发起连接请求

​	2)服务器向客户端发送公钥

​	3)客户端用公钥将密码信息加密,并发送服务器端

​	4)服务器端用密钥解密,并验证信息,合法则建立连接

格式:

​	ssh 用户名@IP地址
	例:ssh root@192.168.190.10

2、密钥对验证

​	1)客户端需先创建一对密钥,并将公钥放在服务器端

​	2)当客户端发送连接请求时,将公钥发送到服务器端‘

​	3)服务器收到公钥与本地家目录里的公钥进行对比

​	4)两个公钥一致,服务器就用公钥加密一段“质疑信息”发送回客户端,客户端收到后,用自己的密钥文件解密,并把结果发给服务器端,服务器端验证成功后,建立连接

3、ssh密钥对验证模式

前提:客户机已经把自己的公钥放在了服务器上
	1)客户端发送自己的公钥到服务器请求连接,服务器要求客户端接收自己的公钥文件
	2)服务器接收客户端的公钥并验证是否和本地存放的一致
	3)若不一致,拒绝,若一致,则使用该公钥加密一段质疑信息发送给客户端				
        4)客户端使用自己的私钥解密,然后再用服务器公钥加密,将结果返回
	5)服务器用自己的私钥解密,若结果和发送的相同则成功建立连接

三、配置ssh服务

1、环境准备

​ 准备两台虚拟机,配置好网络参数,并将主机名改为不同的名字,以便于测试。

对于新学习的人,建议关闭防火墙,selinux。

2、linux主机之间密钥对登录验证

1)客户端生成密钥对文件

ssh-keygen -t rsa/dsa -b 2048

-t 指定加密类型(rsa/dsa)等

-b 指定密钥对加密的长度

​ 询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下

​ 询问2:是否对密钥文件进行加密

​ 若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件

​ 若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录

2)将公钥上传至服务器端

ssh-copy-id 用户名@服务器IP地址

3)客户端尝试登录服务器

ssh 用户名@服务器IP地址
ssh root@ip

3、禁止使用密码登录

​ 当我们学会了使用密钥对进行验证后,想要禁用密码登录时使用。

配置文件:/etc/ssh/ssh_config

修改选项:

PasswordAuthentication no

4、禁止使用root远程登录

root远程登录权限过大,当我们需要修改一些系统设置时,我们可以用普通用户登录,再切换到root用户,此时,就可以禁止使用root登录。

配置文件:/etc/ssh/ssh_config

修改选项:

PermitRootLogin no

5、修改默认端口、限制ssh监听IP

​ 1)修改默认端口

​ ssh作为一个远程管理服务器的工具,需要特别注意安全性,默认使用TCP的22端口,容易被攻击,因此我们可以修改一个高位的端口(1-65535)

配置文件:/etc/ssh/ssh_config

修改选项:

	Port 54321

​ ssh -P 端口

​ 2)限制ssh监听IP

配置文件:/etc/ssh/ssh_config

​ 修改选项:

	ListenAddress 192.168.88.100

四、ssh服务相关命令

1、scp:安全远程文件复制

​	格式:scp 本地文件 用户名@服务器IP:目录

​```
	scp /root/a.txt root@192.168.190.112:/tmp
​```

-P 端口  若修改了端口,则用-P指定端口

2、sftp:安全文件传输协议

​	格式:sftp 用户名@服务器IP

​	-sPort=端口 若修改了端口,则用此格式指定端口

常用交互命令:

​	help:查看交互模式下支持哪些命令

​	pwd/lpwd 查看服务器、客户端的所在路径

​	ls /lls 查看服务器、客户端所在路径的所有文件列表

​	put : 将指定文件上传到服务器

​	get : 将服务器指定文件下载到客户端当前所在目录下

​	rm : 删除服务器指定文件

​	quit : 退出交互模式

推荐阅读