1.什么是SSH服务器
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面远程登录、远程复制等功能。
对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。
对数据进行压缩,加快传输速度。
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
2。ssh优点
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
3,常见ssh协议
客户端:
Linux Client: ssh, scp, sftp,slogin
Windows Client:xshell, MobaXterm,putty, securecrt, sshsecureshellclient
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd"命令即可启动sshd 服务
sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)ftp 20 21
ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
4.功能
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
作用
SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输。
5.原理
公钥传输原理
客户端发起链接请求
服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
客户端生成密钥对
客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
客户端发送加密值到服务端,服务端用私钥解密,得到Res
服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
6.登录方式
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port(端口号)
-p:指定端口号(默认多端口号为22一般情况下不需要加此选项)
如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP
操作:
指定登录的用户
直接连接 默认连接root用户
输入 ssh IP地址
指定端口号
将服务端的端口号修改成非22端口
vim /etc/ssh/sshd_config
找到Port 22的配置,默认是注释掉的,打开注释(删除#)
在下面新增一行:Port 2222(你设置的SSH端口号),
注意不要跟现有端口号重复(新增一行的目的是防止新的端口登录不上)
尝试用2222端口进行登陆,看是否成功!如果成功,执行下面操作。
编辑/etc/ssh/sshd_config文件,将Port 22这行配置注释上或删除
修改之后重启服务 systemctl restart sshd ,使配置文件生效
再使用客户机去连接就需要指定端口号了
6.黑白名单
允许或禁止某主机登录用户
白名单设置
指定主机远程登录
编辑服务端配置文件添加白用户登录设置
vim /etc/ssh/sshd_config
systemctl restart sshd
192.168.6.88能登录
192.168.6.87被拒绝
黑名单设置
编辑服务端配置文件添加黑用户登录设置
( 注意黑白用户设置不能一用)
systemctl restart sshd重启服务
验证
7. 使用密钥对及免交互验证登录 (可无需密码验证)
在实验之前,将之前设置的黑白名单删除,或者使用新的客户机实验
8.scp
远程复制命令
命令格式:scp 选项 源文件 目标:目录
选项:
-r:复制文件夹
9. sftp
远程下载或上传
命令格式:sftp 登录用户@远程主机IP地址
不加用户的话默认为root
sftp [email protected] 登陆到服务器
get下载
get anaconda-ks.cfg /home/
上传
put abc.txt 默认时会上传的/root
put abc.txt /home/
查看可用命令
help 查看sftp可使用的命令和用途
打印服务器当前位置
pwd 打印当前服务器所在位置
lpwd 打印当前本地位置
切换目录、查看文件
cd 切换服务器上的目录
ls 查看当前目录下文件列表
下载文件、退出sftp
get 下载文件
get -r 下载目录
quit 退出sftp
put 上传文件
put -r 上传文件夹
退出命令:quit、exit、bye都可以