Linux中SSH遠程訪問和控制的實現(xiàn)
一、SSH服務的概述
1.1、概念
SSH(Secure Shell)是一種安全通道協(xié)議,主要用來實現(xiàn)字符界面的遠程登錄、遠程 復制等功能。SSH 協(xié)議對通信雙方的數(shù)據(jù)傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令,SSH 為建立在應用層和傳輸層基礎上的安全協(xié)議。
SSH客戶端: Putty、 Xshell、 CRT、MobaXterm、FinalShell
1.2、SSH數(shù)據(jù)傳輸原理
SSH客戶端與服務端是通過網(wǎng)絡來進行數(shù)據(jù)文件傳輸?shù)?,?shù)據(jù)傳輸是加密的,可以防止信息泄露,(并不安全)數(shù)據(jù)傳輸是壓縮的,可以提高傳輸速度。
1.3、SSH服務端: OpenSSH
OpenSSH 是實現(xiàn)SSH協(xié)議的開源軟件項目,適用于各種UNIX、 Linux 操作系統(tǒng)。
Centos 7系統(tǒng)默認已安裝openssh相關軟件包,并將sshd 服務添加為開機自啟動。
執(zhí)行"systemctl start sshd"命令即可啟動sshd 服務
sshd 服務默認使用的是TCP的22端口,安全協(xié)議版本sshv2,出來2之外還有1(有漏洞)
sshd服務的默認配置文件是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服務器的配置文件,二者區(qū)別在于前者是針對客戶端的配置文件,后者則是針對服務端的配置文件。
ssh服務端主要包括兩個服務功能 ssh遠程鏈接和sftp服務
- OpenSSH 常用配置文件有兩個/etc/ssh/ssh_config 和/etc/sshd_config。
- ssh_config:為客戶端配置文件,設置與客戶端相關的應用可通過此文件實現(xiàn)
- sshd_config:為服務器端配置文件,設置與服務端相關的應用可通過此文件實現(xiàn)。
二、配置OpenSSH服務端
vim /etc/ssh/sshd_config
Port 22 ### 監(jiān)聽端口為22 ListenAddress 0.0.0.0 ###監(jiān)聽地址為任意網(wǎng)段,也可用指定OpenSSH服務器的具體IP UseDNS no ###禁用DNS反向解析,以提高服務器的響應速度
三、sshd 服務的兩種驗證方式
3.1、密碼驗證
對服務器中本地系統(tǒng)用戶的登錄名稱、密碼進行驗證。簡便,但可能會被暴力 破解。
3.2、密鑰對驗證
要求提供相匹配的密鑰信息才能通過驗證,通常先在客戶端中創(chuàng)建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務器中的指定位置。遠程登錄時,系統(tǒng)將使用公鑰、私鑰進行加密/解密關聯(lián)驗證。能增強安全性,且可用免交換登錄。相當于鑰匙和鎖的關系
密鑰有兩種
對稱密鑰
非對稱密鑰
非對稱:RSA,創(chuàng)建出一個公鑰,一個私鑰,驗證的話,私鑰必須要和公鑰能對應匹配,才允許登錄、交互、否則拒絕。
PS:公鑰和私有,實際上就是兩個文件
當密碼驗證、密鑰對驗證都啟用時,服務器將優(yōu)先使用密鑰對驗證。
四、使用SSH客戶端程序
4.1、ssh遠程登錄方式
登錄 方法一:
ssh [遠程主機用戶名] @[遠程服務器主機名或IP地址] -p port
當在 Linux 主機上遠程連接另一臺 Linux 主機時,如當前所登錄的用戶是 root 的話,當連接另一臺主機時也是用 root 用戶登錄時,可以直接使用 ssh IP,端口默認即可,如果端口不是默認的情況下,需要使用-p 指定端口。
登錄方法二:
ssh -l [遠程主機用戶名] [遠程服務器主機名或IP 地址] -p port
-l :-l 選項,指定登錄名稱。
-p:-p 選項,指定登錄端口(當服務端的端口非默認時,需要使用-p 指定端口進行登錄)
4.2、擴展命令
1. 使用ssh連接遠程主機時加上“-o StrictHostKeyChecking=no”的選項。
2. 一個徹底去掉這個提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下兩行配置:
StrictHostKeyChecking no UserKnownHostsFile /dev/null
五、構建密鑰對驗證的SSH
5.1、公鑰和私鑰的關系
在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰用來給數(shù)據(jù)加密,用公鑰加密的數(shù)據(jù)只能使用私鑰解
構建密鑰對驗證的SSH原理首先ssh通過加密算法在客戶端產(chǎn)生密鑰對(公鑰和私鑰),公鑰發(fā)送給服務器端,自己保留私鑰,如果要想連接到帶有公鑰的SSH服務器,客戶端SSH軟件就會向SSH服務器發(fā)出請求,請求用聯(lián)機的用戶密鑰進行安全驗證。SSH服務器收到請求之后,會先在該SSH服務器上連接的用戶的家目錄下尋找事先放上去的對應用戶的公用密鑰,然后把它和連接的SSH客戶端發(fā)送過來的公用密鑰進行比較。如果兩個密鑰一致,SSH服務器就用公鑰加密"質詢"(challenge)并把它發(fā)送給SSH客戶端。



5.2、scp復制
scp:scp是secure copy的簡寫(安全性復制),用于在Linux下進行遠程拷貝文件的命令,而且scp傳輸是加密的。
1.###本地文件復制到服務器 scp sheng root@192.168.100.141:/opt 2.####復制服務器的文件到本地 scp root@192.168.100.141:/opt/test/ ./ 3.####本地目錄復制到服務器 scp -r 1234/ root@192.168.100.141:/opt


5.3、安全性傳輸sftp
sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協(xié)議。可以為傳輸文件提供一種安全的網(wǎng)絡的加密方法。

到此這篇關于Linux中SSH遠程訪問和控制的文章就介紹到這了,更多相關Linux SSH遠程訪問和控制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Ubuntu下使用linuxdeployqt打包Qt程序問題
這篇文章主要介紹了解決Ubuntu下使用linuxdeployqt打包Qt程序問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
linux操作系統(tǒng)安裝sql developer步驟
本文介紹了linux安裝sql developer的步驟,大家參考使用吧2014-01-01

