01. 遠程管理服務知識介紹
1) SSH遠程登陸服務介紹說明
SSH是Secure Shell Protocol的簡寫,由 IETF 網絡工做小組(Network Working Group)制定;
在進行數據傳輸以前,SSH先對聯機數據包經過加密技術進行加密處理,加密後在進行數據傳輸。
確保了傳遞的數據安全。
SSH是專爲遠程登陸會話和其餘網絡服務提供的安全性協議。
利用SSH協議能夠有效的防止遠程管理過程當中的信息泄露問題,在當前的生產環境運維工做中,
絕大多數企業廣泛採用SSH協議服務來代替傳統的不安全的遠程聯機服務軟件,如telnet(23端口,非加密的)等。
在默認狀態下,SSH服務主要提供兩個服務功能:
2) SSH遠程登陸服務功能做用
a 一是提供相似telnet遠程聯機服務器的服務,即上面提到的SSH服務;
b 另外一個是相似FTP服務的sftp-server,藉助SSH協議來傳輸數據的,提供更安全的SFTP服務(vsftp,proftp)。
3) SSH遠程登陸服務排錯思路
01. 檢查鏈路是否通暢---ping(icmp)/tracert/traceroute
02. 檢查鏈路是否阻斷---將防火牆功能關閉
03. 檢查服務是否開啓---ss/netstat -lntup(服務端檢查) /telnet/nmap/nc(客戶端檢查)安全
服務開啓沒有服務器
02. Telnet遠程登陸服務功能做用
SSH遠程登陸服務特色說明
Telnet遠程登陸服務功能做用
03. 遠程管理服務概念詳解
1)SSH遠程管理服務加密技術
ssh鏈接登陸過程
①. ssh客戶端發出鏈接請求網絡
清空 >/root/.ssh/known_hosts
②. ssh服務端會發出確認信息,詢問客戶端你是否真的要鏈接我
③. ssh客戶端輸入完成yes,會等到一個公鑰信息
cat /root/.ssh/known_hosts運維
服務端公鑰dom
④. ssh服務端將公鑰信息發送給ssh客戶端
⑤. ssh客戶端利用密碼進行登陸
ssh
加密技術分爲v1和v2兩個版本
sshv1版本不會常常更換鎖頭和鑰匙,所以會有安全隱患
sshv2版本會常常更換鎖頭和鑰匙,所以提升了遠程鏈接安全性
2)SSH遠程管理服務認證類型ide
基於密鑰方式實現遠程登陸
①. ssh管理服務器上建立密鑰對信息(公鑰 私鑰)
②. ssh管理服務器上將公鑰發送給被管理服務器
③. ssh管理服務器向被管理服務器發送鏈接請求
④. ssh被管理服務器向管理服務器發送公鑰質詢
⑤. ssh管理服務器處理公鑰質詢請求,將公鑰質詢結果發送給被管理主機
⑥. ssh被管理服務器接收公鑰質詢響應信息,從而確認認證成功
⑦. ssh管理服務端能夠和被管理服務端創建基於密鑰鏈接登陸
04. 基於密鑰登陸方式部署流程
第一個里程:在管理主機上建立密鑰對信息
ssh-keygen -t dsa <-- 建立密鑰對命令 -t dsa表示指定密鑰對加密類型
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): <-- 確認私鑰文件所保存的路徑通常默認
/root/.ssh/id_dsa already exists.
Overwrite (y/n)? y <-- 若是已經存在了密鑰對信息,是否進行覆蓋
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 root@m01
The key's randomart image is:
+--[ DSA 1024]----+
| o+oE |
| +.B+ o |
| . B Bo . |
| . = B . |
| . * S |
| + . |
| . |
| |
| |
+-----------------+測試
私鑰dsa 公鑰dsa.pubui
第二個里程:將管理主機上公鑰信息發送給被管理主機加密
給其餘用戶管理在地址前加用戶名
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
root@172.16.1.31'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.
在非默認22端口是發送公鑰會報錯解決辦法
在~/.ssh/下建立config文件 在文件中天劍port [端口號] 就好了
第三個里程:進行遠程管理測試(基於密鑰的方式進行遠程管理)
ssh 172.16.1.31 <-- 能夠不用輸入密碼信息,就能登錄成功
ssh 172.16.1.31 uptime <-- 能夠不用登錄到遠程主機,就能夠直接查看遠程主機信息
# ssh -p17524 -l lianxizc 10.0.0.31< -- -p指定端口號 -l 指定用戶
或者
都沒有默認端口22 默認用戶root
05. SSH服務端配置文件信息說明(/etc/ssh/sshd_config)
Port 52113 <- 修改ssh服務端口號信息
ListenAddress 0.0.0.0 <- 主要做用提高網絡鏈接安全性
默認監聽全部網卡地址
PS:監聽地址只能配置爲服務器網卡上擁有的地址
PermitRootLogin no <- 是否容許root用戶遠程登陸
企業中禁止root用戶直接登錄
PermitEmptyPasswords no <- 是否容許空密碼
UseDNS no <- 是否進行DNS反向解析(提高ssh遠程鏈接效率)
GSSAPIAuthentication no <- 是否進行遠程GSSAPI認證(提高ssh遠程鏈接效率)
遠程管理服務防範
10. sftp經常使用操做命令總結
bye Quit sftp <-- 表示退出sftp傳輸模式
cd path Change remote directory to 'path' <-- 改變遠程目錄信息
pwd Display remote working directory <-- 顯示遠程主機當前目錄信息
lcd path Change local directory to 'path' <-- 改變本地目錄路徑信息
lpwd Print local working directory <-- 輸出本地目錄路徑信息
get [-P] remote-path [local-path Download file <-- 下載文件命令
put [-P] local-path [remote-path] <-- 上傳文件命令 Upload file
ssh部署 通常系統都有
服務端
客戶端
進程端口
進程是否啓動進程號
端口信息
思考:
01. 批量的分發公鑰信息,而且採用免交互方式實現
02. 批量管理(ansible)