SSH服務理論+實踐
1)遠程管理服務知識介紹
SSH遠程登錄服務介紹說明
01. SSH-Secure Shell Protocol 安全加密shel協議
SSH遠程登錄服務功能作用
01. 提供類似telnet遠程登錄管理服務器功能
02. 提供類似FTP文件傳輸服務功能的sftp-server,借助SSH服務加密傳輸數據
SSH遠程登錄服務排錯思路
01. 檢查鏈路是否通暢---ping(icmp禁用了,也ping不通)
02. 檢查鏈路是否阻斷---tracert/traceroute
03. 檢查服務是否開啟---ss/netstat -lntup
2)遠程管理服務對比說明
SSH遠程登錄服務特點說明
01. SSH服務端口號信息為22
02. SSH服務采用密文方式傳輸數據
03. SSH服務默認支持root用戶進行遠程登錄
Telnet遠程登錄服務功能作用
01. telnet服務端口號信息為23
02. telnet服務采用明文方式傳輸數據
03. telnet服務默認不支持root用戶進行遠程登錄
04.nmap 10.1.1.128 -p 22
3)遠程管理服務概念詳解
SSH遠程管理服務加密技術
ssh連接登錄過程原理
①. ssh客戶端發出連接請求
②. ssh服務端會發出確認信息,詢問客戶端你是否真的要連接我
③. ssh客戶端輸入完成yes,會等到一個公鑰信息
cat /root/.ssh/known_hosts
④. ssh服務端將公鑰信息發送給ssh客戶端
⑤. ssh客戶端利用密碼進行登錄
⑥.客戶端 vim /etc/ssh/ssh_host_rsa_key.pub 和 服務端 cat /root/.ssh/known_hosts 秘鑰是一致的
①. 采用公鑰和私鑰進行算法加密
sshv1版本不會經常更換鎖頭和鑰匙,因此會有安全隱患
sshv2版本會經常更換鎖頭和鑰匙,因此提高了遠程連接安全性
SSH遠程管理服務認證類型
①. 基於口令的安全驗證
②. 基於密鑰的安全驗證(驗證原理)
①. ssh管理服務器上創建密鑰對信息(公鑰 私鑰)
②. ssh管理服務器上將公鑰發送給被管理服務器
③. ssh管理服務器向被管理服務器發送連接請求
④. ssh被管理服務器向管理服務器發送公鑰質詢
⑤. ssh管理服務器處理公鑰質詢請求,將公鑰質詢結果發送給被管理主機
⑥. ssh被管理服務器接收公鑰質詢響應信息,從而確認認證成功
⑦. ssh管理服務端可以和被管理服務端建立基於密鑰連接登錄
基於密鑰登錄方式部署流程
第一個裏程:在管理主機上創建密鑰對信息
ssh-keygen -t dsa <-- 創建密鑰對命令 -t dsa表示指定密鑰對加密類型
Enter file in which to save the key (/root/.ssh/id_dsa): <-- 確認私鑰文件所保存的路徑
Enter passphrase (empty for no passphrase): <-- 確認是否給私鑰設置密碼信息(一般為空)
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
46:c8:21:b9:99:6e:0c:59:39:66:38:7a:97:29:51:76 [email protected]
The key‘s randomart image is:
+--[ DSA 1024]----+
| o+oE |
| +.B+ o |
| . B Bo . |
|. = B . |
| . * S |
| + . |
. |
| |
| |
+-----------------+
第二個裏程:將管理主機上公鑰信息發送給被管理主機
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
[email protected]‘s password:
Now try logging into the machine, with "ssh ‘172.16.1.31‘", and check in:
.ssh/authorized_keys
to make sure we haven‘t added extra keys that you weren‘t expecting.
第三個裏程:進行遠程管理測試(基於密鑰的方式進行遠程管理)
ssh 172.16.1.31 <-- 可以不用輸入密碼信息,就能登陸成功
ssh 172.16.1.31 uptime <-- 可以不用登陸到遠程主機,就可以直接查看遠程主機信息
SSH遠程管理服務配置詳解
①. 配置文件端口信息修改
②. 配置文件監聽地址信息
vim /etc/ssh/sshd_config
Port 52113 <- 修改ssh服務端口號信息
ListenAddress 0.0.0.0 <- 主要作用提升網絡連接安全性
PS:監聽地址只能配置為服務器網卡上擁有的地址
PermitRootLogin no <- 是否允許root用戶遠程登錄
PermitEmptyPasswords no <- 是否允許空密碼
UseDNS no <- 是否進行DNS反向解析(提升ssh遠程連接效率)
GSSAPIAuthentication no <- 是否進行遠程GSSAPI認證(提升ssh遠程連接效率)
SSH遠程管理服務入侵防範
①. 利用密鑰登錄提高安全性
②. 利用牤牛陣法提高安全性
①. 安全設備策略阻止訪問,只放開少量服務端口
②. 開啟SSH監聽地址功能,只監聽內網網卡地址
③. 利用服務器不配置外網IP提高安全性
④. 利用授權與系統安裝最小化提高安全性
⑤. 利用指紋信息對系統重要文件進行加密處理
⑥. 利用系統重要文件加鎖功能提高安全性
SSH遠程管理服務連接功能
①. SSH遠程連接方法--linux客戶端連接
ssh -p22 [email protected].0.61
②. SSH遠程連接方法--windows客戶端連接
利用xshell/SecureCRT/Putty軟件連接
③. SSH遠程連接不登錄服務器執行命令方法
ssh -p22 [email protected] "free -m"
SSH遠程管理服務復制功能
①. SSH遠程復制方法--scp
scp -P22 -rp /tmp/oldboy [email protected]:/tmp
②. SSH遠程復制方法--屬於遠程全量復制
SSH遠程管理服務傳輸功能
①. SSH遠程傳輸方法--sftp
ftp -oPort=52113 [email protected]
4)遠程管理服務部署說明
遠程管理服務服務端
①. 服務端需要安裝部署openssh-server軟件包
②. 服務端程序重要文件信息
①. 服務啟動腳本文件 /etc/rc.d/init.d/sshd
②. 服務程序配置文件 /etc/ssh/sshd_config
③. 服務守護進程命令 /usr/sbin/sshd
遠程管理服務客戶端
①. 客戶端需要安裝部署openssh-clients軟件包
②. 客戶端程序重要文件信息
①. 安全拷貝命令 /usr/bin/scp
②. 安全傳輸命令 /usr/bin/sftp
③. 安全登錄命令 /usr/bin/ssh
④. 創建私鑰命令 /usr/bin/ssh-keygen
④. 傳輸公鑰命令 /usr/bin/ssh-copy-id
5)遠程管理服務免秘管理
遠程管理服務端
①. 創建密鑰對信息(免交互與交互方式)
②. 分發公鑰信息(免交互和交互方式)
③. 測試遠程登錄受控端是否免密碼
遠程管理受控端
①. 驗證是否已經接收到分發公鑰信息
SSH服務理論+實踐