前言
SSH是一种网络协议,全称为Secure Shell。它用于在不安全的网络上,通过加密和身份验证的方式,安全地远程登录和执行指令。SSH可以提供加密通信和数据传输,以及安全地管理远程服务器和网络设备。其主要功能包括远程操作、文件传输和隧道功能。SSH通过使用公钥加密技术和密码身份验证等方法,确保通信的机密性、完整性和身份认证的安全性。
一、概念
安全外壳协议,提供安全可靠的远程连接
二、特点
ssh是工作在传输层和应用层的协议
ssh提供了一组管理命令
ssh
scp
sftp
ssh-copy-id
提供了多种身份验证机制
三、身份验证机制
密码验证 需要提供密码
密钥对验证 无需提供密码,直接登录
四、验证过程 及基本配置安装
客户端发起请求 ssh 服务器IP地址
确认是否保存指纹信息,yes确认保存
输入目标主机密码
打开子shell建立会话
若退出,则使用exit
4.1基本配置安装服务器和客户端1和远程客户端2
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
设置宽容模式
setenforce 0
配置静态IP服务器和客户端的IP都要配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
客户端1
远程客户端2
重启网络设备
systemctl restart network
看一下ssh服务进去目录
必须要输入ssh命令才会有
服务器没输入所以没有
Linux的多用户
登入一次就会在客户机1留下记录下次登录直接输入密码
五、加密机制
5.1 单向加密 不可逆的加密算法
5.2 对称加密 加密和解密使用相同的密钥
5.3 非对称加密 加密和解密使用一组密钥对(公钥、私钥)
六、基本参数
6.1 服务名 sshd
6.2 端口号 TCP/22
监听地址任意地址
6.3 配置文件
服务器端
/etc/ssh/sshd_config ssh主程序sshd的配置文件
/etc/ssh/ssh_host_* 服务器的公钥和私钥文件
~/.ssh/authorized_keys 密钥库文件
客户端
/etc/ssh/ssh.config 客户端的全局配置文件
~/.ssh/known_hosts 客户端存储服务器主机指纹的文件
~/.ssh.id_rsa 客户端生成的私钥
~/.ssh.id_rsa.pub 客户端生成的公钥
没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端
6.4 配置文件解析
/etc/ssh/sshd_config
cd /etc/ssh
vim sshd_config
Port 监听端口
Listenaddress 监听地址,0.0.0.0表示监听所有地址
PubkeyAuthentication 是否启用密钥对验证
PasswordAuthentication 是否启用密码验证
PermitEmptyPasswords 是否启用空密码,密码验证时,最好关闭
AuthorizedKeysFile .ssh/authorized_keys 密钥库文件
/etc/ssh/ssh_config
vim /etc/ssh/ssh_config
ConnectTimeout 连接超时时间
研究:
1、服务器端密钥库文件中保存的信息是谁的,怎么去理解?
保存的信息是客户端当前的登录用户,搞清楚客户端去登录的时候怎么验证比对这个
存储信息
七、基本操作
7.1 ssh
作用:远程连接的客户端工具
格式:ssh [options] [user@]hostname [command]
实验
指定用户登录
练习:客户端以jx01的用户身份登录到服务器
可以登录但是服务器上必须要有jx01的用户
不登录执行命令
练习:客户端使用liujt的用户不登陆服务器,执行创建目录的命令
ssh liujt@192.168.28.1 'mkdir /home/liujt/aaa
上客户端查看
如果上传了密钥对不用输入密码直接传
练习:客户端使用root的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容
服务器看客户端3 ,执行查看文件内容
指定端口 -p
指定网卡 -b
7.2 scp
作用:基于ssh的远程复制命令
实验
本地<-->本地
本地<-->远程
客户端 拉服务器
远程<-->远程 !!!
需要第三台远程机
练习
1、将客户端192.168.28.2主机上的/mnt/888.txt文件复制服务器到192.168.28.1主机上
7.3 sftp
作用:安全的文件传输程序
实验
带上l表示当前目录,不带l表示root用户目录
7.4 密钥对验证
作用:提供免交互的密码验证
实验
客户端生成密钥对
ssh-keygen
客户端将公钥上传至服务器
ssh-copy-id
服务器启用密钥对验证
客户端测试
传输完密钥客户端登录不需要密码直接登录
让我们来把远程机设置密钥对
1、客户端生成密钥对
ssh-keygen
2、客户端将公钥上传至服务器
ssh-copy-id
服务器启用密钥对验证
查看谁远程登录我们的主机
输入w查看