本节主要学习SSH的概念,特点,身份验证机制,验证过程,加密机制,基本参数,基本操作等。
安全外壳协议,提供安全可靠的远程连接
二、特点
1.ssh是工作在传输层和应用层的协议
2.提供了多种身份验证机制
3.SSH提供了一组管理命令
ssh scp sftp ssh-copy-id
三、身份验证机制
1、密码验证—需要提供密码
2、密钥对验证—无需提供密码,直接登录
四、验证过程
客户端发起请求 ssh 服务器IP地址 |
确认是否保存指纹信息,yes确认保存 |
输入目标主机密码 |
打开子shell建立会话 |
若退出,则使用exit |
五、加密机制
单项加密 | 不可逆的加密算法 |
对称加密 | 加密和解密使用相同的密钥 |
非对称加密 | 加密和解密使用一组密钥对(公钥、私钥) |
六、基本参数
1、服务名—sshd
2、端口号—TCP/22
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 | 客户端生成的公钥 |
③没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端
4、配置文件解析
①/etc/ssh/sshd_config
Port | 监听端口 |
Listenaddress | 监听地址,0.0.0.0表示监听所有地址 |
PubkeyAuthentication | 是否启用密钥对验证 |
PasswordAuthentication | 是否启用密码验证 |
PermitEmptyPasswords | 是否启用空密码,密码验证时,最好关闭 |
AuthorizedKeysFile .ssh/authorized_keys | 密钥库文件 |
②/etc/ssh/ssh_config—ConnectTimeout 连接超时时间
5、研究
1、服务器端密钥库文件中保存的信息是谁的,怎么去理解?
七、基本操作
1、ssh—远程连接的客户端工具
格式:ssh [options] [user@]hostname [command]
实验
①指定用户登录:练习:客户端以jx01的用户身份登录到服务器
1、在服务器内创建用户jx01
2、在客户端输入命令:
ssh jx01@192.168.123.1
②不登陆执行命令:练习:客户端使用jx02的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容
服务器创建jx02用户
客户端查看
2、scp—基于ssh的远程复制命令
实验
①将客户端192.168.123.1主机上的/etc/hosts文件复制服务器到192.168.123.2主机上
②将服务器192.168.123.1上的/etc/hostname文件复制到本地192.168.123.2的opt目录下
3、sftp—安全的文件传输程序
实验—使用与ftp服务使用一致
4、密钥对验证—提供免交互的密码验证
实验
客户端生成密钥对—ssh-keygen |
客户端将公钥上传至服务器—ssh-copy-id |
服务器启用密钥对验证 |
客户端测试 |