国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

SSH只能用于遠程連接Linux主機?SSH介紹和更多使用

發(fā)布時(shí)間:2022-05-26 12:38 來(lái)源:老劉博客 閱讀:139 作者:網(wǎng)絡(luò ) 欄目: 經(jīng)驗分享 歡迎投稿:712375056

本文目錄 顯示

今天為大家分享一篇關(guān)于SSH介紹和使用方法的文章。本文從SSH是什么出發(fā),講述了SSH的基本用法,之后在遠程登錄、端口轉發(fā)等多種場(chǎng)景下進(jìn)行獨立的講述,希望能對大家有所幫助。實(shí)操的話(huà),大家可以參閱《優(yōu)刻得GlobalSSH新版本支持修改端口加速非UCloud IP》。

什么是SSH?

什么是SSH?SSH是一種網(wǎng)絡(luò )協(xié)議,用于計算機之間的加密登錄。最早的時(shí)候,互聯(lián)網(wǎng)通信都是明文通信,一旦被截獲,內容就暴露無(wú)疑。1995年,芬蘭學(xué)者Tatu Ylonen設計了SSH協(xié)議,將登錄信息全部加密,成為互聯(lián)網(wǎng)安全的一個(gè)基本解決方案,迅速在全世界獲得推廣,目前已經(jīng)成為L(cháng)inux系統的標準配置。

SSH登錄原理

SSH基本用法


語(yǔ)法:

ssh -p 22 user@host

參數:-p:指定端口號。user:登錄的用戶(hù)名。host:登錄的主機。默認的端口號為22,當端口號為22的時(shí)候,可以省略,直接使用如下方式:

ssh user@host

此外,如果本地正在使用的用戶(hù)名與遠程登錄的用戶(hù)名一致,登錄用戶(hù)名也是可以省略的,即如下:

ssh host

SSH遠程登錄實(shí)例

現在我有兩臺linux虛擬機,上面安裝都是centOS6.5,ip分別為192.168.13.135和192.168.13.138,如下圖:

現在,我需要操作的是通過(guò)SSH在192.168.13.138上面,登錄到192.168.13.135上面。

首先,我們可以使用如下命令,查看兩臺機器是否啟用了ssh。

netstat -ntlp |grep ssh

使用如下命令進(jìn)行連接。

ssh -p 22 root@192.168.13.135

若在本機上是首次登錄該遠程主機,則會(huì )出現如下界面。

大致意思就是,無(wú)法確認host主機的真實(shí)性,只知道它的公鑰指紋,問(wèn)你還想繼續連接嗎?輸入yes即可。

然后輸入密碼,即可連接ok了。

要想退出,直接輸入exit即可。

SSH端口轉發(fā)

SSH 不僅僅能夠自動(dòng)加密和解密 SSH 客戶(hù)端與服務(wù)端之間的網(wǎng)絡(luò )數據,同時(shí),SSH 還能夠提供了一個(gè)非常有用的功能,那就是端口轉發(fā),即將TCP 端口的網(wǎng)絡(luò )數據,轉發(fā)到指定的主機某個(gè)端口上,在轉發(fā)的同時(shí)會(huì )對數據進(jìn)行相應的加密及解密。如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò )端口的使用,但是允許 SSH 的連接,那么也是能夠通過(guò)使用SSH轉發(fā)后的端口進(jìn)行通信。轉發(fā),主要分為本地轉發(fā)與遠程轉發(fā)兩種類(lèi)型。

1.轉發(fā)的參數

-C:壓縮數據
-f :后臺認證用戶(hù)/密碼,通常和-N連用,不用登錄到遠程主機。
-N :不執行腳本或命令,通常與-f連用。
-g :在-L/-R/-D參數中,允許遠程主機連接到建立的轉發(fā)的端口,如果不加這個(gè)參數,只允許本地主機建立連接。
-L : 本地端口:目標IP:目標端口
-D : 動(dòng)態(tài)端口轉發(fā)
-R : 遠程端口轉發(fā)
-T :不分配 TTY 只做代理用
-q :安靜模式,不輸出 錯誤/警告 信息

2.本地轉發(fā)

有本地網(wǎng)絡(luò )服務(wù)器的某個(gè)端口,轉發(fā)到遠程服務(wù)器某個(gè)端口。說(shuō)白了就是,將發(fā)送到本地端口的請求,轉發(fā)到目標端口。格式如下:

ssh -L 本地網(wǎng)卡地址:本地端口:目標地址:目標端口 用戶(hù)@目標地址?,F在我們利用本地轉發(fā)來(lái)解決一個(gè)問(wèn)題,比如我們有兩臺機器,如下:

centos A(192.168.13.139)

centos B(192.168.13.142)

現在,centos B(192.168.13.142)機器上面安裝了mysql,并設置了運行任何主機連接,如下:

此時(shí),在centos A(192.168.13.139)上面是可以連上centos B(192.168.13.142)的mysql,如下:

那么,現在我開(kāi)始centos B(192.168.13.142)限制不允許外部ip連接,僅僅讓127.0.0.1連接,如下:

此時(shí),centos A(192.168.13.139)上面怎么連接上centos B(192.168.13.142)的mysql呢?此時(shí),我們還是使用上面的mysql連接方式,肯定會(huì )報錯,如下:

當然在centos B(192.168.13.142)mysql還是可訪(fǎng)問(wèn)的。

這個(gè)時(shí)候,我們就可以使用SSH本地端口轉發(fā)了,將本地的某個(gè)端口,映射到centos B(192.168.13.142)機器上面的,如下:

ssh -L 127.0.0.1:3306:127.0.0.1:3306 root@192.168.13.142

因為本地網(wǎng)卡地址是可以省略的,上面的轉發(fā),可以簡(jiǎn)寫(xiě)為:

ssh -L 3306:127.0.0.1:3306 root@192.168.13.142

當然,ssh連接的時(shí)候,若兩臺機器的用戶(hù)名相同,也是可以省略的,即命令可以簡(jiǎn)寫(xiě)為:

ssh -L 3306:127.0.0.1:3306 192.168.13.14

上面的代碼就是將本地的3306端口,轉發(fā)到192.168.13.142的3306端口。因為centos B(192.168.13.142)上面的mysql使用的3606端口。當然,我們首先得看看本地的3306端口是否被占用,如被占用,可以使用其他的端口。

數據流向如圖:

首先,centos A(192.168.13.139)上的應用將數據發(fā)送到本地的127.0.0.1上面的3306端口。

然后,centos A(192.168.13.139)將3306端口的數據,通過(guò)SSH轉發(fā)到centos B(192.168.13.142)的3306端口。

接著(zhù),centos B(192.168.13.142)將處理后的數據,原路返回給centos A(192.168.13.139)。

如果是首次通過(guò)ssh連接cetosB該機器,則會(huì )提示確認公鑰,并讓你選擇是否確定連接。

此時(shí),我們在centos A上面連接centos B上面的mysql,就可以這么寫(xiě)了。

bin/mysql -h127.0.0.1 -uroot -p

如下:

我們可以通過(guò)下面命令,在centosA查看ssh轉發(fā)監聽(tīng)的進(jìn)程。

3.遠程轉發(fā)

由遠程服務(wù)器的某個(gè)端口,轉發(fā)到本地網(wǎng)絡(luò )的服務(wù)器某個(gè)端口。說(shuō)白了,就是將發(fā)送到遠程端口的請求,轉發(fā)到目標端口。格式如下:

ssh -R 遠程網(wǎng)卡地址:遠程端口:目標地址:目標端口

下面三臺機器為例,如下:

centos A(192.168.13.139)

centos B(192.168.13.142)

win7(10.18.78.135)

假設,win7(10.18.78.135)與centos B(192.168.13.142)不能直接連接,但是win7(10.18.78.135)與centos A(192.168.13.139)可以連接centos B(192.168.13.142)也可以centos A(192.168.13.139)連接,那么,我們就可以在centos A(192.168.13.139)上面使用遠程端口轉發(fā)了,讓win7(10.18.78.135)與centos B(192.168.13.142)進(jìn)行通信。

ssh -R 127.0.0.1:80:10.18.78.135:80 root@192.168.13.142

即centos B(192.168.13.142)監聽(tīng)自己的80端口,然后將所有數據,由centos A(192.168.13.139)發(fā)給win7(10.18.78.135)。

SSH的遠程操作

ssh遠程操作,主要用于在遠程的機器上面執行某個(gè)操作,格式如下:

ssh user@host ‘command’

案例1、在機器A(192.168.13.148)中查看機器B(192.168.13.149)的操作系統類(lèi)型。

在A(yíng)機器上面執行如下代碼:

ssh dequan@192.168.13.149 ‘uname -a’

案例2、將機器A(192.168.13.148)中test文件夾復制到B機器(192.168.13.149)。

在A(yíng)機器上面,執行如下命令:

tar -cz test | ssh dequan@192.168.13.149 ‘tar -xz’

當然,我們也可以使用scp命令或rz命令,傳輸文件。
案例3、在機器A(192.168.13.148)處查看B機器(192.168.13.149)是否監聽(tīng)了1080端口。在A(yíng)機器上面,執行如下命令:

ssh dequan@192.168.13.149 ‘netstat -tln |grep 1080’

SSH的本地轉發(fā)

本地轉發(fā),說(shuō)白了,就是把發(fā)到本地的某個(gè)端口請求,轉發(fā)到遠程的某臺機器上面。格式如下:

ssh -L  [本地地址:]本地端口:遠程地址:遠程端口 遠程用戶(hù)@遠程地址

案例1、在機器B(192.168.13.149)上面訪(fǎng)問(wèn)機器A(192.168.13.148)的服務(wù)?,F在,我們在A(yíng)機器上面,啟動(dòng)了Nginx服務(wù),如下:

我們希望B機器也能夠這樣使用A機器上面的服務(wù)。需要把B機器上面80端口請求,轉發(fā)到A機器上面。目前在B機器這樣執行,是報錯的,如下:

需要在B機器上面,執行如下代碼:

ssh -f -N -L 127.0.01:80:192.168.13.148:80 dequan@192.168.13.148

然后,在B機器上面,訪(fǎng)問(wèn)A機器的服務(wù),就想訪(fǎng)問(wèn)自身的服務(wù)一樣。

SSH的遠程轉發(fā)

遠程轉發(fā),即把發(fā)給遠程機器的某個(gè)端口請求,轉發(fā)到本地的機器上面。格式如下:

ssh -R [遠程地址:]遠程端口:本地地址:本地端口 遠程用戶(hù)@遠程地址

在上面的案例中,我們也可以通過(guò)遠程轉發(fā)來(lái)實(shí)現。即在A(yíng)機器上面執行如下代碼:

sudo ssh -f -N -R 8081:127.0.0.1:80 dequan@192.168.13.149

我們監聽(tīng)了B機器的8081端口,把該端口的請求,轉發(fā)到A機器上面??梢栽贐機器上面看到,我們的監聽(tīng),如下:

此時(shí),執行如下命令,就會(huì )被轉發(fā)到A機器的127.0.0.1的80端口,如下:

1、利用遠程轉發(fā),實(shí)現代理功能

目前B機器,只能在自己127.0.0.1的80端口監聽(tīng)并轉發(fā),如何讓B機器作為代理,轉發(fā)其他機器的請求到A機器上面呢?比如,現在有一臺機器C(192.168.13.143),C不能訪(fǎng)問(wèn)A,但是能夠訪(fǎng)問(wèn)B。如何讓C利用B來(lái)訪(fǎng)問(wèn)A呢?此時(shí),需要將B的監聽(tīng),由127.0.0.1:8081,改為0:0.0.0:8081,修改sshd的配置/etc/ssh/sshd_config。

vim /etc/ssh/sshd_config
如果有
GatewayPorts no
改為
GatewayPorts yes

沒(méi)有,添加即可
然后重啟sshd

sudo service sshd restart

然后重新,設置動(dòng)態(tài)轉發(fā),如下:

ssh -f -g -N -R 8081:127.0.0.1:80 dequan@192.168.13.149

可以看到,此時(shí)B機器,已經(jīng)監聽(tīng)了0:0.0.0:8081

在C機器上面,我們通過(guò)curl模擬請求,利用B機器做代理,如下:

curl -x 192.168.13.149:8081 127.0.0.1

當然,如果還有其他機器,也可以使用類(lèi)似的方式,來(lái)請求A機器。

SSH的動(dòng)態(tài)轉發(fā)

對于SSH的本地轉發(fā)和遠程轉發(fā),都需要將本地端口和遠程端口一一綁定,格式如下:

ssh -D [本地地址:]本地端口號 遠程用戶(hù)@遠程地址

比如,把發(fā)到B機器上面的請求,都轉發(fā)到A機器上面,讓A機器去執行請求。

SSH存在的問(wèn)題

如果有人截獲了登錄請求,然后冒充遠程主機,將偽造的公鑰發(fā)給用戶(hù),那么用戶(hù)很難辨別真偽。因為不像https協(xié)議,SSH協(xié)議的公鑰是沒(méi)有ssl/' target='_blank'>證書(shū)中心(CA)公證的,也就是說(shuō),都是自己簽發(fā)的??梢栽O想,如果攻擊者插在用戶(hù)與遠程主機之間(比如在公共的wifi區域),用偽造的公鑰,獲取用戶(hù)的登錄密碼。再用這個(gè)密碼登錄遠程主機,那么SSH的安全機制就蕩然無(wú)存了。這種風(fēng)險就是著(zhù)名的”中間人攻擊”(Man-in-the-middle attack)。

SSH總結

本篇文章主要介紹了SSH的基本概念和實(shí)踐中常用的一些方法,并沒(méi)有涉及深層原理和優(yōu)化的知識,在底層實(shí)現和協(xié)議具體內容還能繼續深入研究。如果有什么疑問(wèn)或建議,可以在下方留言。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

久久国产成人免费网站| 亚洲第一成人网站| JZZIJZZIJ在线观看亚洲熟妇| 2021久久精品国产99国产精品| 精品国产一区二区三区AV性色| 秋霞理论理论福利院久久|