今日內容
1.什么是SSH
SSH是一個安全協議,在進行數據傳輸時,會對數據包進行加密處理,加密后在進行數據傳輸。確保了數據傳輸安全
2.SSH的主要功能是什么
1.提供遠程連接服務器的服務
2.對遠程連接傳輸數據進行加密
3.SSH與Telnet之間有什么關系
| 服務連接方式 | 服務數據傳輸 | 服務監(jiān)聽端口 | 服務登錄用戶 |
|---|---|---|---|
| ssh | 加密 | 22/tcp | 默認支持root用戶登錄 |
| telnet | 明文 | 23/tcp | 不支持root用戶登錄 |
4.抓包分析ssh與telnet的區(qū)別
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統(tǒng)統(tǒng)可以搞定
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免秘實現跳板機功能?

SSH使用的場景.png
#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遠程連接功能安全優(yōu)化?
問題1.ssh連接時,要等待30s-1分鐘才提示輸入密碼?(對IP做了反向解析)
問題2.ssh作為對外連接的一個服務,會不會被破解
1.更改遠程連接登錄的端口 默認ssh端口是22端口如果修改為其他的端口相對就會降低分險
2.禁止ROOT管理員直接登錄 root 不能登錄但是可以使用普通用戶
3.密碼認證方式該為密鑰認證方式 (盡量不用)
4.重要服務不使用公網ip地址
5.使用防火墻限制來源ip地址
ssh服務登錄防護需進行如下配置調整,進行優(yōu)化
[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