目录
一、概念
安全外壳协议,提供安全可靠的远程连接
二、特点
ssh是工作在传输层和应用层的协议
ssh提供了一组管理命令
ssh
scp
sftp
ssh-copy-id
提供了多种身份验证机制
三、身份验证机制
1、 密码验证
需要提供密码
2、 密钥对验证
无需提供密码,直接登录
四、验证过程
客户端发起请求( ssh 服务器IP地址 )
ssh 192.168.1.10
ssh a1@192.168.1.10
a1为服务端已知用户名,可以指定远程登录那个用户
确认是否保存指纹信息,yes确认保存
指纹信息存储位置
cd .ssh/
输入目标主机密码
打开子shell建立会话
使用ip a查看自己是那个机器或使用其他命令
若退出,则使用exit
五、加密机制
1、 单向加密
不可逆的加密算法
2、 对称加密
加密和解密使用相同的密钥
3、 非对称加密
加密和解密使用一组密钥对(公钥、私钥)
六、基本参数
1、 服务名
sshd
2、 端口号
TCP/22
查看监听,前一个为停止时的监听,后一个为正在运行中的远程登录的监听
3、 配置文件
3.1、 服务器端
vim /etc/ssh/sshd_config
ssh主程序sshd的配置文件
cd /etc/ssh/
ls
服务器的公钥和私钥文件
cat ~/.ssh/authorized_keys
密钥库文件
3.2、 客户端
vim /etc/ssh/sshd_config
客户端的全局配置文件
cat ~/.ssh/known_hosts
客户端存储服务器主机指纹的文件
cat ~/.ssh.id_rsa
客户端生成的私钥
cat ~/.ssh.id_rsa.pub
客户端生成的公钥
没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端
4、 配置文件解析
vim /etc/ssh/sshd_config
Port 监听端口
Listenaddress 监听地址,0.0.0.0表示监听所有地址
PubkeyAuthentication 是否启用密钥对验证
PasswordAuthentication 是否启用密码验证
PermitEmptyPasswords 是否启用空密码,密码验证时,最好关闭
AuthorizedKeysFile .ssh/authorized_keys 密钥库文件
vim /etc/ssh/ssh_config
ConnectTimeout 连接超时时间
5、 实验研究
1)服务器端密钥库文件中保存的信息是谁的,怎么去理解?
七、基本操作
1、 ssh
1.1、 作用
远程连接的客户端工具
1.2、 格式
ssh [options] [user@]hostname [command]
1.3、实验
指定用户登录
练习:客户端以a1的用户身份登录到服务器
tail /etc/passwd
ssh a1@192.168.1.10
不登录执行命令
练习:客户端使用a2的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容
ssh a2@192.168.1.10 'cat /etc/sysconfig/network-scripts/ifcfg-ens33'
指定端口 -p
指定网卡 -b
2、 scp
2.1、 作用
基于ssh的远程复制命令
2.2、 实验
2.2.1、本地<-->本地
本地到本地之间传输,scp命令与cp命令没有什么区别
2.2.2、本地<-->远程
scp 12345 root@192.168.1.11:/mnt
切换过去查看验证或远程查看验证
远程查看验证
ssh 192.168.1.11 ls /mnt/
2.2.3、远程<-->远程
查看三台机器的ip地址
查看客户端两台机器的 /mnt 下有没有内容
在服务器远程将1号机的内容远程拷贝给2号机中
scp 192.168.1.11:/mnt/12345 192.168.1.12:/mnt
2号机查看验证
2.3、 练习
1)将客户端192.168.1.10主机上的/etc/hosts文件复制服务器到192.168.1.11主机上
scp /etc/hosts 192.168.1.11:/mnt/
查看验证
2)将服务器192.168.1.11上的/etc/hostname文件复制到本地192.168.1.10的/mnt目录下
scp /etc/hostname 192.168.1.10:/mnt/
查看验证
3、 sftp
3.1、 作用
安全的文件传输程序
3.2、实验
远程登录下载内容至本地
验证是否完成下载
远程登录上传内容至服务端
查看验证
4、 密钥对验证
4.1、 作用
提供免交互的密码验证
4.2、 实验
客户端生成密钥对
ssh-keygen
按回车确定即可
客户端将公钥上传至服务器
ssh-copy-id 需要接收的服务端的IP地址(例:192.168.1.10)
服务器启用密钥对验证
客户端进行验证,已经不需要密码即可登录服务端
客户端测试