Linux中SSH遠(yuǎn)程訪問和控制的實(shí)現(xiàn)
一、SSH服務(wù)的概述
1.1、概念
SSH(Secure Shell)是一種安全通道協(xié)議,主要用來實(shí)現(xiàn)字符界面的遠(yuǎn)程登錄、遠(yuǎn)程 復(fù)制等功能。SSH 協(xié)議對通信雙方的數(shù)據(jù)傳輸進(jìn)行了加密處理,其中包括用戶登錄時輸入的用戶口令,SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。
SSH客戶端: Putty、 Xshell、 CRT、MobaXterm、FinalShell
1.2、SSH數(shù)據(jù)傳輸原理
SSH客戶端與服務(wù)端是通過網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)文件傳輸?shù)?,?shù)據(jù)傳輸是加密的,可以防止信息泄露,(并不安全)數(shù)據(jù)傳輸是壓縮的,可以提高傳輸速度。
1.3、SSH服務(wù)端: OpenSSH
OpenSSH 是實(shí)現(xiàn)SSH協(xié)議的開源軟件項目,適用于各種UNIX、 Linux 操作系統(tǒng)。
Centos 7系統(tǒng)默認(rèn)已安裝openssh相關(guān)軟件包,并將sshd 服務(wù)添加為開機(jī)自啟動。
執(zhí)行"systemctl start sshd"命令即可啟動sshd 服務(wù)
sshd 服務(wù)默認(rèn)使用的是TCP的22端口,安全協(xié)議版本sshv2,出來2之外還有1(有漏洞)
sshd服務(wù)的默認(rèn)配置文件是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服務(wù)器的配置文件,二者區(qū)別在于前者是針對客戶端的配置文件,后者則是針對服務(wù)端的配置文件。
ssh服務(wù)端主要包括兩個服務(wù)功能 ssh遠(yuǎn)程鏈接和sftp服務(wù)
- OpenSSH 常用配置文件有兩個/etc/ssh/ssh_config 和/etc/sshd_config。
- ssh_config:為客戶端配置文件,設(shè)置與客戶端相關(guān)的應(yīng)用可通過此文件實(shí)現(xiàn)
- sshd_config:為服務(wù)器端配置文件,設(shè)置與服務(wù)端相關(guān)的應(yīng)用可通過此文件實(shí)現(xiàn)。
二、配置OpenSSH服務(wù)端
vim /etc/ssh/sshd_config
Port 22 ### 監(jiān)聽端口為22 ListenAddress 0.0.0.0 ###監(jiān)聽地址為任意網(wǎng)段,也可用指定OpenSSH服務(wù)器的具體IP UseDNS no ###禁用DNS反向解析,以提高服務(wù)器的響應(yīng)速度
三、sshd 服務(wù)的兩種驗(yàn)證方式
3.1、密碼驗(yàn)證
對服務(wù)器中本地系統(tǒng)用戶的登錄名稱、密碼進(jìn)行驗(yàn)證。簡便,但可能會被暴力 破解。
3.2、密鑰對驗(yàn)證
要求提供相匹配的密鑰信息才能通過驗(yàn)證,通常先在客戶端中創(chuàng)建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務(wù)器中的指定位置。遠(yuǎn)程登錄時,系統(tǒng)將使用公鑰、私鑰進(jìn)行加密/解密關(guān)聯(lián)驗(yàn)證。能增強(qiáng)安全性,且可用免交換登錄。相當(dāng)于鑰匙和鎖的關(guān)系
密鑰有兩種
對稱密鑰
非對稱密鑰
非對稱:RSA,創(chuàng)建出一個公鑰,一個私鑰,驗(yàn)證的話,私鑰必須要和公鑰能對應(yīng)匹配,才允許登錄、交互、否則拒絕。
PS:公鑰和私有,實(shí)際上就是兩個文件
當(dāng)密碼驗(yàn)證、密鑰對驗(yàn)證都啟用時,服務(wù)器將優(yōu)先使用密鑰對驗(yàn)證。
四、使用SSH客戶端程序
4.1、ssh遠(yuǎn)程登錄方式
登錄 方法一:
ssh [遠(yuǎn)程主機(jī)用戶名] @[遠(yuǎn)程服務(wù)器主機(jī)名或IP地址] -p port
當(dāng)在 Linux 主機(jī)上遠(yuǎn)程連接另一臺 Linux 主機(jī)時,如當(dāng)前所登錄的用戶是 root 的話,當(dāng)連接另一臺主機(jī)時也是用 root 用戶登錄時,可以直接使用 ssh IP,端口默認(rèn)即可,如果端口不是默認(rèn)的情況下,需要使用-p 指定端口。
登錄方法二:
ssh -l [遠(yuǎn)程主機(jī)用戶名] [遠(yuǎn)程服務(wù)器主機(jī)名或IP 地址] -p port
-l :-l 選項,指定登錄名稱。
-p:-p 選項,指定登錄端口(當(dāng)服務(wù)端的端口非默認(rèn)時,需要使用-p 指定端口進(jìn)行登錄)
4.2、擴(kuò)展命令
1. 使用ssh連接遠(yuǎn)程主機(jī)時加上“-o StrictHostKeyChecking=no”的選項。
2. 一個徹底去掉這個提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下兩行配置:
StrictHostKeyChecking no UserKnownHostsFile /dev/null
五、構(gòu)建密鑰對驗(yàn)證的SSH
5.1、公鑰和私鑰的關(guān)系
在非對稱加密技術(shù)中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰用來給數(shù)據(jù)加密,用公鑰加密的數(shù)據(jù)只能使用私鑰解
構(gòu)建密鑰對驗(yàn)證的SSH原理首先ssh通過加密算法在客戶端產(chǎn)生密鑰對(公鑰和私鑰),公鑰發(fā)送給服務(wù)器端,自己保留私鑰,如果要想連接到帶有公鑰的SSH服務(wù)器,客戶端SSH軟件就會向SSH服務(wù)器發(fā)出請求,請求用聯(lián)機(jī)的用戶密鑰進(jìn)行安全驗(yàn)證。SSH服務(wù)器收到請求之后,會先在該SSH服務(wù)器上連接的用戶的家目錄下尋找事先放上去的對應(yīng)用戶的公用密鑰,然后把它和連接的SSH客戶端發(fā)送過來的公用密鑰進(jìn)行比較。如果兩個密鑰一致,SSH服務(wù)器就用公鑰加密"質(zhì)詢"(challenge)并把它發(fā)送給SSH客戶端。
5.2、scp復(fù)制
scp:scp是secure copy的簡寫(安全性復(fù)制),用于在Linux下進(jìn)行遠(yuǎn)程拷貝文件的命令,而且scp傳輸是加密的。
1.###本地文件復(fù)制到服務(wù)器 scp sheng root@192.168.100.141:/opt 2.####復(fù)制服務(wù)器的文件到本地 scp root@192.168.100.141:/opt/test/ ./ 3.####本地目錄復(fù)制到服務(wù)器 scp -r 1234/ root@192.168.100.141:/opt
5.3、安全性傳輸sftp
sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協(xié)議。可以為傳輸文件提供一種安全的網(wǎng)絡(luò)的加密方法。
到此這篇關(guān)于Linux中SSH遠(yuǎn)程訪問和控制的文章就介紹到這了,更多相關(guān)Linux SSH遠(yuǎn)程訪問和控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Ubuntu下使用linuxdeployqt打包Qt程序問題
這篇文章主要介紹了解決Ubuntu下使用linuxdeployqt打包Qt程序問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07apache設(shè)置自動將http跳轉(zhuǎn)到https的方法
客戶中心啟用了https的ssl證書,現(xiàn)在需要將原先的http直接跳轉(zhuǎn)到https上。這里為大家提供一個我經(jīng)常使用到的方法,即使用偽靜態(tài)功能2013-02-02Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法
本篇文章主要介紹了Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09linux操作系統(tǒng)安裝sql developer步驟
本文介紹了linux安裝sql developer的步驟,大家參考使用吧2014-01-01