今日内容
1.什么是SSH
SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全
2.SSH的主要功能是什么
1.提供远程连接服务器的服务
2.对远程连接传输数据进行加密
3.SSH与Telnet之间有什么关系
服务连接方式 | 服务数据传输 | 服务监听端口 | 服务登录用户 |
---|---|---|---|
ssh | 加密 | 22/tcp | 默认支持root用户登录 |
telnet | 明文 | 23/tcp | 不支持root用户登录 |
4.抓包分析ssh与telnet的区别
telnet使用在交换机 路由器 防火墙 等这类设备上
ssh 使用在服务器邻域
5.SSH相关客户端指令ssh scp sftp
客户端可以使用的命令:
ssh:用来连接远程Linux服务器(xshell底层,调用的就是ssh命令)
[c:\~]$ ssh root@10.0.0.7
Connecting to 10.0.0.7:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
xudeMacBook-Pro:~ xuliangwei$ ssh 10.0.0.7
xuliangwei@10.0.0.7's password:
如果不指定连接Linux服务器的用户,则使用当前客户端的用户作为远程Linux服务器的连接用户
scp:远程拷贝,全量拷贝(每次拷贝都是全量)
push 推:scp -rp /etc root@172.16.1.61
pull 拉:scp root@172.16.1.61:/opt/ /tmp
#1.scp的选项
限速 -l
递归 -r
保持属性 -p
在限速的时候man帮助里面单位是Kbit/s,拷贝的时候显示的是MB/s 8bit=1Byte所以-l 10240,会显示10240/1024/8=1.25MB/s
在拷贝大文件的时候必须限速不然会吧带宽跑满
sftp:远程传输
rz不支持传输文件夹,同时不支持传输大于4个G的文件
Xshell统统可以搞定
6.SSH远程登录方式,用户密码 密钥方式
用户密码:简单容易被破解、复杂记不住
[c:\~]$ ssh root@10.0.0.7
root@10.0.0.7's password: #输入密码
基于密钥的方式来实现:
生产一对拥有数学关系的密钥对(公钥、私钥)
公钥加密,私钥解密。
公钥可以对外提供,对外开放。
私钥只有自己持有,不对外开放
7.密钥方式的实现案例
想实现 10.0.0.61 免密码登录 10.0.0.7
1.在10.0.0.61 上生成一对 密钥对 公钥和私钥
2.10.0.0.61 将公钥 放一份到 10.0.0.7 服务器上
3.10.0.0.61 去连接 10.0.0.7
4.10.0.0.7 会返回 公钥询问(这个公钥是之前61 推送给7 的)
5.10.0.0.61 通过自己的私钥解密10.0.0.7 返回的公钥
#1.在61服务器上生产密钥对
[root@oldboy ~]# ssh-keygen -C 1026044760@qq.com
#2.查看密钥
[root@oldboy ~]# ll ~/.ssh/
总用量 12
-rw------- 1 root root 1679 4月 20 11:11 id_rsa
-rw-r--r-- 1 root root 399 4月 20 11:11 id_rsa.pub
-rw-r--r-- 1 root root 534 4月 20 10:34 known_hosts
#3.将公钥推给10.0.0.7的服务器
[root@oldboy ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.7
ssh-copy-id 拷贝公钥
-i 指定公钥的位置
拷贝到 10.0.0.7 这台服务器的 root用户下
[root@oldboy ~]# ssh root@10.0.0.7
Last login: Mon Apr 20 15:06:20 2020 from 10.0.0.1
8.SSH场景实践,借助SSH免秘实现跳板机功能?
#1.生产密钥对
#2.复制公钥
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6xyCRJ0+69Ojq4DcT0aO27vEeaeV2bbBYz/w2XrNUHuYvnZ5Hm/fNhJH5cWInHZUqZqFFi48OXZ72hKULymTlr68tlrFSc9C2mAmEAajerzR7VZwVEi6otJYFOZT18+cF9gwA5gPOiYlqvoRYDBb9TGAtUZrnTNg5l+K3C3Rym2yjJxsQuGIpmjBQssEeWwiqwqNoCvDkv+tz+z7b9+LkfoznJp86osLss7bTt+5PXuaSs1P3yKZ57ah6VjXNT/e+wwwwXOr+GTaNrpTpt5KSNQC2PfHzlPe2zXEgX0k7ipDAGGmdiO6RqigMav1vKTQOj9pFqXy8K+JjJx2gvcy/Q==
#3.将公钥放在跳板机61的~/.ssh/目录下
[root@oldboy ~]# cd ~/.ssh/
[root@oldboy .ssh]# ls
id_rsa id_rsa.pub known_hosts
#4.查看~/.ssh/目录的权限为700
[root@oldboy .ssh]# ll -d ~/.ssh/
drwx------ 2 root root 57 4月 20 15:16 /root/.ssh/
#5.查看当前的所在的路径
[root@oldboy .ssh]# pwd
/root/.ssh
#6.给跳板机的61服务器配置公钥文件authorized_keys
[root@oldboy .ssh]# vim authorized_keys
#7.给跳板机的61服务器配置公钥文件authorized_keys 授权
[root@oldboy .ssh]# chmod 600 authorized_keys
[root@oldboy .ssh]# ll authorized_keys
-rw------- 1 root root 402 4月 20 16:13 authorized_keys
#8.在跳板机61服务器给web nfs 推送公钥
[root@oldboy ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.31
[root@oldboy ~]# ssh root@172.16.1.31
Last login: Mon Apr 20 16:29:05 2020 from 172.16.1.61
[root@oldboy ~]# ssh root@172.16.1.41
Last login: Mon Apr 20 16:32:02 2020 from 10.0.0.1
9.SSH远程连接功能安全优化?
问题1.ssh连接时,要等待30s-1分钟才提示输入密码?(对IP做了反向解析)
问题2.ssh作为对外连接的一个服务,会不会被破解
1.更改远程连接登录的端口 默认ssh端口是22端口如果修改为其他的端口相对就会降低分险
2.禁止ROOT管理员直接登录 root 不能登录但是可以使用普通用户
3.密码认证方式该为密钥认证方式 (尽量不用)
4.重要服务不使用公网ip地址
5.使用防火墙限制来源ip地址
ssh服务登录防护需进行如下配置调整,进行优化
[root@backup ~]# cat /etc/ssh/sshd_config
Port 6666 # 变更SSH服务远程连接端口
PermitRootLogin no # 禁止root用户直接远程登录
PasswordAuthentication no # 禁止使用密码直接远程登录
UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟
变更配置之后一定要重启服务
systemctl restart sshd