天天看點

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

作者:邊緣智能技術

先舉一個例子,比如在工業現場,有個Linux裝置可能出現了故障,需要管理者去解決,或者修改一些配置,這時候,有一種方式,就是這個管理者來到這台Linux裝置跟前,進行相關操作,解決問題,但如果這時候,管理人員不再附近,要讓他過來就很不友善,或者還有一個問題,工業現場很多Linux裝置都是控制器,平時也沒有接顯示器,也沒有接滑鼠,鍵盤。是以,要直接操作這個機器就很不友善,而通過ssh服務,管理人員就可以遠端登入到這台機器,對這台機器進行相關操作,就好像在本地進行操作一樣。這就是接下來要介紹的ssh服務。

SSH(遠端連接配接工具)連接配接原理:ssh服務是一個守護程序(demon),系統背景監聽用戶端的連接配接,ssh服務端的程序名為sshd,負責實時監聽用戶端的請求(IP 22端口),包括公共秘鑰等交換等資訊。

ssh服務端由2部分組成: openssh(提供ssh服務) openssl(提供加密的程式)

ssh的用戶端可以用 XSHELL,Securecrt, Mobaxterm,putty等工具進行連接配接,我比較常用的putty這個工具,既簡單,又好用。

1)ssh服務的安裝和配置

如果你隻是想登陸别的機器的SSH隻需要安裝openssh-client(ubuntu有預設安裝,如果沒有則sudo apt-get install openssh-client),如果要使本機開放SSH服務就需要安裝openssh-server。ubuntu預設并沒有安裝ssh服務,如果通過ssh連結ubuntu,需要自己手動安裝ssh-server。可以通過如下指令進行:

#sudo apt-get install openssh-server           

然後确認sshserver是否啟動了:

#ps -e |grep ssh           

如果看到sshd那說明ssh-server已經啟動了。

如果沒有則可以這樣啟動:sudo /etc/init.d/ssh start

ssh-server配置檔案位于/ etc/ssh/sshd_config,在這裡可以定義SSH的服務端口,預設端口是22,你可以自己定義成其他端口号,如222。

然後重新開機SSH服務:

#sudo systemctl stop sshd
#sudo systemctl start sshd           

然後使用以下方式登陸SSH:

ssh [email protected]            

james為192.168.0.100機器上的使用者,需要輸入密碼。

斷開連接配接:exit

ssh預設是不能以root使用者登入的,如果需要root登入,就需要修改配置檔案,允許root登入,我們來介紹,如何修改配置/etc/ssh/sshd_config, 開啟允許root 登入,主要就是把下面選項打開

LoginGraceTime 2m
PermitRootLogin yes           

然後重新開機ssh 服務

systemctl restart sshd           

就可以使用root使用者登入了

ssh -p 22 [email protected]
[email protected]'s password: 
Permission denied, please try again.           

如果出現以上情況,可能是root密碼沒對,可以修改一下root密碼再試試

Permission denied, please try again.           

應該就可以正常登入了

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

2)ssh用戶端遠端登入

ssh服務提供了遠端連線通路的功能,對于提供ssh服務的Linux系統,我們通過通過網絡中其他的裝置,遠端登入到這個Linux裝置,登入後,可以對Linux進行任何操作,就好像在直接在在那台Linux裝置進行操作。不過ssh是基于控制台互動,即通過之前介紹的shell指令進行互動,而不是基于圖形的,如果要遠端連接配接Linux的圖形桌面,就采用VNC服務,後續會有講到。

但通常ssh是遠端連線控制Linux最常用的,而且在一般嵌入Linux中,或者服務系統中,一般是沒有圖形桌面,是以也不支援VNC的圖形連線。

要通過ssh遠端連線Linux系統,除了剛才上面提到的指令行方式,也有其他更加友善的SSH的用戶端程式,不管是window還是Linux,都有很多ssh用戶端程式,網絡去搜尋一下,就可以找到很多。我這裡介紹一款我認為最好用,也是我最常用的SSH用戶端工具,putty。

putty有Windows版本,也有Linux版本,也是使用最廣泛的SSH用戶端。它進場用于遠端通路和配置伺服器、交換機和路由器等裝置。Putty作為一個免費的開源工具,在Linux使用者中也很受歡迎。它受歡迎的另一個原因是它的功能,包括會話管理、代理會話、會話日志和語言設定。它還支援各種網絡協定,包括SSH、telnet、SCP、rlogin等。

我們先來看,在Windows下如何安裝putty工具。

進入Putty官網的下載下傳頁面:

http://www.putty.be/latest.html

下載下傳對應的版本安裝即可,我的Windows的64位的,是以我就選擇下載下傳64位版本,下載下傳後安裝即可。

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

安裝完成後,

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

如上圖,選擇 ssh,輸入需要連線的遠端裝置的IP位址,點選Open,就可以進行遠端連線了,第一次連線時,會彈出如下對話框,

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

點選accept即可。

然後會提示你輸入使用者名和密碼,這是要輸入遠端Linux裝置的使用者名和密碼,輸入後,就連接配接成功了,進入到 shell控制台,這時候,你可以輸入任何指令來操作該遠端的Linux裝置。

在Ubuntu系統下,其實也可以通過線上安裝的方式安裝putty:

#apt-get install putty           

就可以進行安裝了,安裝完成後,通過指令行打開putty

#putty           

它看起來和Windows版本一樣。

當然,你可以可以使用其他的ssh用戶端,比如Linux下,就有ssh的指令,ssh指令就是一個指令形式的ssh用戶端。

3)基于ssh的遠端檔案上傳和下載下傳

通過ssh服務,還可以遠端上傳和下載下傳檔案和目錄,這裡就需要用到scp這個指令:

下載下傳遠端裝置172.21.84.198上/home/test.txt當本機的目前目錄

#scp [email protected]:/home/test.txt . //下載下傳檔案           

上傳本機檔案test.txt到遠端裝置172.21.84.198上的/home/下

#scp test.txt [email protected]:/home  //上傳檔案           

下載下傳遠端裝置172.21.84.198上/home/test目錄到本機的目前目錄

#scp -r [email protected]:/home/test .  //下載下傳目錄           

上傳本機目錄test到遠端裝置172.21.84.198上的/home/下

#scp -r test [email protected]:/home   //上傳目錄           

以上指令中的root表示以root使用者登入到遠端的裝置,指令執行過程中應該會提示輸入密碼,因為上面指令是指定root登入,是以就輸入root密碼。

基于ssh的上傳和下載下傳,也是一個經常用到的功能,也是非常有用的功能。

另外在介紹FTP用戶端時,我們有提到WinSCP工具,該工具也支援通過圖形化的基于ssh協定上傳和下載下傳檔案。

第五章 Linux常用服務介紹-5.3 ssh遠端登入服務

小夥伴們,對于 ssh服務,了解了嗎?趕緊動手來試試吧!

繼續閱讀