1. 程式人生 > 其它 >SSH遠端管理服務---------常有江南船,寄書家中否

SSH遠端管理服務---------常有江南船,寄書家中否

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.選擇檢視資料包