SSH遠端管理服務---------常有江南船,寄書家中否
阿新 • • 發佈:2021-08-08
SSH遠端管理服務
SSH基本概述
SSH是一個安全協議,在進行資料傳輸時,會對資料包進行加密處理,加密後在進行資料傳輸,確保了資料傳輸安全
# 主要功能有:
1.提供遠端連線伺服器的服務
linux遠端連線協議:ssh 22 telnet 23
2.對傳輸進行加密
SSH服務會對傳輸服務提供遠端連線服務,telnet也能提供遠端連線服務,區別是:
ssh 服務會對傳輸資料進行加密,監聽本地22/tcp埠, ssh服務預設支援root使用者登入
telnet 服務不對資料進行加密,建通在本地23/tcp埠, telnet預設不支援root使用者登入
服務連線方式 | 服務資料傳輸 | 服務監聽埠 | 服務登入使用者 |
---|---|---|---|
ssh | 加密 | 22/tcp | 預設支援root使用者 |
telnet | 明文 | 23/tcp | 不支援root使用者 |
一、SSH相關命令
SSH 有客戶端與服務端,我們將這種模式稱為C|S架構,ssh客戶端支援windows、Linux、Mac等平臺,在ssh客戶端中包含ssh|slogin遠端登入、scp遠端拷貝,sftp檔案傳輸、ssh-copy-id金鑰分發等應用
# ssh [email protected] ssh 命令 -p 指定埠(在終端無法使用) 22 指定ssh協議埠 root 連線時使用的使用者(如果不寫,預設使用當前伺服器當前使用者) @ 分隔符 172.16.1.21 遠端伺服器IP -o StrictHostKeyChecking=no 登陸時跳過驗證身份
二、telnet連線
2.1、安裝telnet
yum install -y telnet-server
2.2、啟動telnet
systemctl start telnet.socket
2.3、建立普通使用者
# 不能使用root登入,所以需要建立普通使用者
useradd rock
echo 1 | passwd --stdin rock
2.4、驗證登入
[d:\~]$ telnet 192.168.207.21
三、scp命令(遠端檔案傳輸)
#命令: scp 引數: -r 表示遞迴拷貝目錄 -l 限速。單位是kb -P 指定埠,預設是22 -p 保持傳輸檔案屬性不變 # scp支援推和拉 推 # scp -r /data/ [email protected]:/mnt/ 將本地/data檔案推送到遠端伺服器的/mnt/目錄下 拉 # scp [email protected]:/mnt/* /data 將遠端伺服器/mnt/目錄下檔案拉到本地 /data目錄下 -l 限速,單位是kb #設定速度為10M 10*1024*8=81920 [root@nfs]# scp -l 81920 file [email protected]:/backup/
四、sftp命令
#命令: sftp
# 建立連線
sftp [email protected]
# sftp支援推和拉
# sftp使用get下載檔案至於本地伺服器
sftp> get 1.txt /root
命令 遠端伺服器檔案 本地伺服器位置
# sftp使用put上傳本地伺服器檔案至遠端伺服器
sftp> put /data/1.txt /mnt/
命令 本地伺服器檔案 遠端伺服器位置
sftp:
1.能上傳資料夾
2.能支援上傳大於4G的檔案
rz:
1.不能上傳資料夾
2.不支援斷點續傳
3.只能上傳小於4G的檔案
五、SSH驗證遠端登入
5.1、方式一:基於賬戶密碼的方式遠端登入
# 需要知道伺服器的IP,埠,賬戶,密碼才可以連線遠端主機
ssh -p 22 [email protected] ---輸入密碼
密碼設定條件
1.複雜的密碼:yonghu_12@31_sysnum(記不住)
2.簡單的密碼:1 123(容易被破解)
3.每臺伺服器密碼不⼀樣
4.密碼三個⽉更換⼀次
5.輸⼊密碼錯誤三次⾃動鎖死
6.密碼有key,30秒⼀變或者1分鐘⼀變
5.2、方式二:金鑰
預設情況下,通過ssh客戶端命令登陸遠端伺服器,需要提供遠端系統上的帳號與密碼,但為了降低密碼
洩露的機率和提⾼登陸的⽅便性,建議使⽤金鑰驗證⽅式。
5.2.1、生成金鑰
# 命令: ssh-keygen
引數:
-t 指定金鑰型別(rsa、dsa)
-c 指定使用者郵箱
# ssh-keygen
ps:執行該命令後,會要求輸入保護金鑰的密碼,直接回車略過
5.2.2、傳送金鑰
方式一:
命令方式推送公鑰
# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
輸入:'yes'
輸入:'密碼' 傳送金鑰需要輸入遠端主機使用者密碼
方式二:
手動複製公鑰
cat /root/.ssh/id_rsa.pub
5.3、免互動expect
[root@m01 ~]# yum install -y expect
寫入指令碼:
#!/usr/bin/expect
set ip 10.0.0.7
set pass 1
set timeout 30
spawn ssh root@$ip
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
expect "root@*" {send "df -h\r"}
expect "root@*" {send "exit\r"}
expect eof
5.4、免互動sshpass
# yum install -y sshpass
# sshpass -p 1 ssh [email protected]
sshpass 命令
-p 指定密碼
1 密碼
ssh 連線命令
root ⽤戶
@ 分隔符
172.16.1.7 主機
寫入指令碼:
[root@m01 .ssh]# vim ssh.sh
#!/bin/bash
for num in 41 31 7;do
echo ------------------ 10.0.0.$num -----------------
sshpass -p 1 ssh -o StrictHostKeyChecking=no [email protected].$num df -h
done
六、SSH安全優化
vim /etc/ssh/sshd_conf
ort 4399 # 修改sshd服務的預設端⼝
PermitRootLogin no # 禁⽌使⽤root登入伺服器
PasswordAuthentication no # 禁⽌使⽤密碼登入
UseDNS no # 禁⽌ssh進⾏dns反向解析,影響ssh連線效率引數
GSSAPIAuthentication no # 禁⽌GSS認證,減少連線時產⽣的延遲
xshell連線不上虛擬機器
#1.查⽹絡,連線誰就ping誰
ping 10.0.0.31
tcping 10.0.0.31 22
#2.查端⼝
telnet 10.0.0.31 22
tcping 10.0.0.31 22
#3.如果可以ping通,端⼝不通
需要檢測服務端⼝
netstat -lntp | grep sshd
#4.⽹卡是否啟動
ip a
#5.防⽕牆
檢視防⽕牆規則是否允許ssh服務
firewall-cmd --list-all
#6.檢視虛擬⽹絡編輯器
檢視⽹關是否正確
#7.檢視電腦的VMnat8⽹卡,配置資訊是否正確
七、wireshark
7.1、什麼是wireshark
Wireshark(前稱Ethereal)是一個網路封包分析軟體。網路封包分析軟體的功能是擷取網路封包,並儘可能顯示出最為詳細的網路封包資料。Wireshark使用WinPCAP作為介面,直接與網絡卡進行資料報文交換。
在過去,網路封包分析軟體是非常昂貴的,或是專門屬於盈利用的軟體。Ethereal的出現改變了這一切。在GNUGPL通用許可證的保障範圍底下,使用者可以以免費的途徑取得軟體與其原始碼,並擁有針對其原始碼修改及客製化的權利。Ethereal是全世界最廣泛的網路封包分析軟體之一。
抓包過程
1.開啟wireshark,選擇接入的網路(需要抓包軟體接入的網路)
2.可以選擇服務關鍵字進行篩選如:ssh,telnet
3.執行命令
4.wireshark抓包資料檢視
5.選擇檢視資料包