天天看點

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

1. SSH遠端連接配接的原理

SSH遠端連接配接中,SSH2協定分為3個協定:傳輸層協定,認證協定,連接配接協定,而SSH1中由單個協定提供密鑰交換,身份認證,加密的功能。傳輸層協定主要提供密鑰交換與服務端認證的功能,認證協定是提供用戶端認證功能,用戶端認證主要有基于密碼認證和密鑰認證,連接配接協定主要是提供遠端執行指令功能。而在此我們主要讨論SSH遠端連接配接的原理,也就是用戶端認證的兩種方式:

工作流程如下:(此處的公鑰密鑰為一對,公鑰加密隻能由相應私鑰進行解密)

⑴伺服器端開啟ssh服務,在端口22監聽用戶端請求

方式一①使用者名密碼驗證方式(密碼認證)

⑵用戶端發出ssh請求,伺服器把自己的rsa key公鑰發送給使用者

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

而此rsa key會被記錄到伺服器端的~/.ssh/known_hosts中,下次遠端登入伺服器就不會出現以上的提示資訊 

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑶使用者根據伺服器發來的公鑰對密碼進行加密

⑷加密後的資訊傳回到伺服器,伺服器用自己的私鑰解密,若密碼正确,則使用者登入成功。

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

②基于密鑰的登陸方式(公鑰加密)

⑴首先在用戶端生成一對密鑰(ssh-keygen)ssh-keygen -t (指定生成密鑰類型,rsa,dsa,ecdsa等)    id_rsa檔案:儲存密鑰  id_rsa.pub:儲存公鑰

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑵将用戶端的公鑰ssh-copy-id拷貝到服務端

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

在伺服器端檢視是否拷貝成功

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑶當用戶端再次發送一次連接配接請求,包括ip,使用者名

⑷服務端接收到用戶端的請求後,在authorized_keys(已授權的用戶端公鑰)中尋找,如果有響應的ip和使用者名就生成一串随機的字元串,例如:qwer

⑸服務端使用用戶端拷貝過來的公鑰對其進行加密并發送給用戶端

⑹得到用戶端發送過來的資訊後,用戶端使用私鑰進行解密,然後将解密後的字元串發送給服務端

⑺服務端得到用戶端發送過來的字元串後,跟之前的字元串進行對比,如果一緻就允許免密碼登入

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

測試:

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

2. 用xshel連接配接ubuntu系統的步驟,以及遇到問題的解決方法

故障:ssh服務由于是自己自學并且安裝,是以對它完全是一個從無到有的認識,是以最初不知道它是一個需要提前安裝的服務,隻是在網上搜尋了SSH遠端連接配接的原理,知道了用戶端和伺服器的一個密碼交換過程,是以通過在網上不斷收集資料的過程,ssh連接配接的過程逐漸清晰,在安裝包,建立連接配接,登入使用者,傳送檔案的各個過程中都遇到了各種各樣的麻煩

解決方法:就是堅決不放棄,網際網路上什麼資料都有,前人學習的寶貴經驗财富可一一搜尋了解,最終能夠摸索出一套可行的方案出來

Step1:使用apt-get安裝SSH服務

①用dpkg-l | grep -i  “ssh”  檢視ssh服務的安裝資訊,從圖中可以看到已經有用戶端和伺服器兩個檔案。(

障礙:之前的操作步驟找不到了,該圖其實為安裝好ssh之後的安裝資訊檢視,在安裝好之前其實隻有前三項,是以是不齊全的,

解決方案:使用之前學過的apt-get install指令成功安裝ssh服務)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

②安裝 openssh-server(

障礙:知道使用ssh,必須要先安裝好它,但是由于對ssh了解欠缺,是以不知道應該使用apt-get install指令安裝什麼,是以上網各處搜尋,

解決方案:終于在中國大學mooc的一堂課中有提到安裝openssh-server這個服務)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

Step2:啟動和停止SSH服務

①/etc/init.d/ssh start(stop/restart) 可以控制ssh服務的啟動停止和重新開機(

障礙:剛安裝好ssh服務我還以為可以直接打開xshell5進行連接配接,結果打開xshell之後也是一頭霧水,建立連接配接裡面不知道寫什麼,更不用說連接配接這回事了。

解決方案:

以上指令可以實作ssh服務的三個操作,其實隻需要用start打開就可以,但是為了多體驗ssh的操作,我找到了其他兩個操作,stop和restart)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

②netstat -a | grep ssh 指令檢視程序,看端口是否在監聽(

障礙:user使用者鑰匙在監聽中/run/user/1000/keyring/ssh,沒有看到root使用者

解決方案:之後避免使用root使用者)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

Step3:設定SSH的配置檔案sshd_config(

障礙:在sshd_config檔案中可以看到authentication下有一個Permitrootlogin之前顯示的是without-password,允許root使用者登入但是不能使用密碼登陸

解決方法:改為yes)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

Step4:使用xshell連接配接到ubuntu系統

①用ifconfig ens33 192.168.1.100指令修改ens33的位址為192.168.1.100(

障礙:之前在網上搜查的資料沒有這一步,它們是直接寫的127.0.0.1,然後在xshell中直接設定進行連接配接,最後是能夠連接配接建立但是不會彈出使用者登入視窗,

解決方法:另尋它路,在别人的部落格裡面看到可以通過ifconfig設定ens33的内部位址,在xshell中用該位址進行連接配接)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

②将虛拟機的網絡連接配接模式改為NAT模式(我選擇用NAT模式連接配接)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

③在虛拟網絡編輯器添加一個VMnet8(NAT模式對應VMnet8),設定子網IP為192.168.1.0

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

④NAT設定内容如下

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑤在Xshell 5中選擇SSH協定,主機位址設為192.168.1.100(之前設定的ens33的位址)預設端口22号

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑥點選确認後出現下列視窗

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑦點選确認後出現下列登陸視窗(輸入使用者名和密碼)(

障礙:初見該登陸框的時候,我第一個想到的是用root使用者名,密碼就為linux下使用者的密碼登陸,結果顯示拒絕密碼,後來我換成了普通user使用者,使用者密碼依然還是之前的那個,但是最後還是拒絕我的密碼輸入。

解決方法:在網上搜尋為什麼shell登入使用者拒絕登入密碼,然後在嵌入式愛好者網站中看到所不能用root登陸,用普通使用者進行登陸,是以我在ubuntu中把root使用者用sudo 指令退回了普通使用者,再在xshell中用普通使用者進行登陸最終連接配接成功建立。)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

⑧登陸成功後連接配接成功結果圖如下

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

Step5:安裝lrzsz包(

障礙:安裝lrszs包的時候,不知怎麼的沒網了,連接配接不上網絡,點不開網頁,是以apt-get install指令沒有用

解決方案:在網上找網絡連接配接的設定,以太網連接配接設定,wifi連接配接設定,在windows的管理者指令中通過ipconfig all看到了以太網ipv4的位址和無線連接配接模式下的ipv4位址,把這兩個配置好在電腦上,結果以太網連接配接上但是不能用,是以換成wifi連接配接模式,一直連接配接不上,索性将所有的設定改為橋接模式,一下子就聯網了,使用apt-get install指令安裝lrzsz)

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

Step6:rz指令将2016070525傳到ubuntu系統,ubuntu系統内将上述文檔重命名為自己名字拼音,sz指令傳到windows系統中

(障礙:在安裝好lrzsz之後,我在Ubuntu系統中輸入rz指令,準備接受電腦桌面的檔案,但是出現的是一串亂碼,并且這串亂碼的數字在慢慢地移動,但是始終不像網上那樣會彈出視窗來。

解決方案:找了好幾份别人通過lrzsz來傳送和接受檔案的執行個體,發現大家都是在xshell中輸入sz和rz指令進行的檔案下載下傳和上傳)

①将2016070525傳到ubuntu系統

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

②重命名為qiuyanru.txt

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

③sz指令将 qiuyanru.txt檔案傳送到windows系統

SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)
SSH遠端連接配接原理(怎樣在linux系統和windows系統互傳檔案)(有多處引用别人的部落格,侵權删)

繼續閱讀