目录
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。
一、SSH数据传输原理
SSH客户端与服务端是通过网络来进行数据文件传输的,数据传输是加密的,可以防止信息泄露,(并不安全)数据传输是压缩的,可以提高传输速度。
SHH客户端:
Putty、 Xshell、CRT
SHH服务器:
OpenSSH
OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd" 命令即可启动sshd服务
sshd服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)
sshd服务的默认配置文件是/etc/ssh/sshd_ config
ssh_ config和sshd_ config(服务端比较多) 都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
ssh服务端主要包括两个服务功能ssh远程链接和sftp服务
作用:
SSHD服务使用SSH协议可以用来进行远程控制,或在计算机之间传送文件。
相比较之前用Telnet 方式来传输文件要安全很多,因为Telnet使用明文传输,SSH 是加密传输。
二、配置OpenSSH服务端
1、sshd_config配置文件的常用选项设置
重点
vim /etc/ssh/sshd_config
Port 22 ### 监听端口为22
ListenAddress 0.0.0.0 ###监听地址为任意网段,也可用指定OpenSSH服务器的具体IP
UseDNS no ###禁用DNS反向解析,以提高服务器的响应速度
三、sshd 服务支持的两种验证方式
1、密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
2、密钥对验证
要求提供相匹配的密钥信息才能通过验证,通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可用免交换登录。
相当于钥匙和锁的关系
密钥有两种
对称密钥
非对称:RSA,创建出一个公钥,一个私钥,验证的话,私钥必须要和公钥能对应匹配,才允许登录、交互、否则拒绝。
PS:公钥和私有,实际上就是两个文件
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。
使用SSH客户端程序
1、ssh远程登录格式
ssh [选项] qwf@192.168.100.20
当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入“yes”)后才能继续验证。接受的密钥信息将保存到~/.ssh/know_host 文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了。
-p:指定非默认的端口号,缺省时默认使用22端口
ssh -p 1234 qwf@192.168.100.20
实验(交互登录)
用主机liuxu去登录主机liuxu10
退出 exit
实验(非对称密钥对登录)
id_rsa 私钥
id_rsa.pub 公钥