Linux-SSH介紹與認證方式


Linux SSH

前言:

在實際的生產環境中,運維人員經常要使用本地的計算機對遠程主機進行控制工作,TCP/IP協議提供了兩種協議來完成這樣的操作,分別為Telnet協議和SSH協議。

由於Telnet本身的安全性缺陷(明文傳輸),當黑客捕捉到數據包后,就會泄露用戶名和密碼,已經逐漸在生產環境中被淘汰掉。

所以今天我們主要來探究SSH連接的兩種方式,並在虛擬機進行實現。此外嘗試使用Python編寫基礎的SSH遠程控制程序。


SSH簡介:

什么是SSH,SSH是用於客戶端和服務器端的溝通。在服務器上,SSH協議生成的軟件以守護進程的方式在后台存在,當客戶端進行鏈接的時候對其進行響應。可以簡單的將SSH理解為連接客戶端和服務器端的管道。

如何開啟和實現SSH通信,是我們要研究的問題。

SSH認證方式:

當客戶端嘗試連接服務器端的時候,服務器會對其進行安全認證,從而獲取認證信息。SSH提供了兩種認證方式,分別為基於口令的安全認證和基於密鑰的安全認證。

基於口令的安全認證:

基於口令的認證本質上還是'賬戶'+'密碼'的認證,當輸入了正確用戶信息后,服務器端通過了認證才可以接受控制請求。

基於密鑰的安全認證:

基於密鑰的認證使用了公私鑰來進行驗證。首先服務器端和客戶端都配置使用了公鑰,而私鑰僅由客戶端保存。當客戶端嘗試連接服務器的時候,會首先將自己的公鑰發送給服務器端,當服務器端對比客戶端與自己所存儲的公鑰一致后,會向客戶端發送檢查信息,這個檢查信息需要客戶端使用私鑰進行解密,繼而應答服務器的消息進行確認驗證。

SSH連接實現:

前置條件:首先必須要有SSH連接的應用軟件,市面上比較典型的有Xshell、Finalshell、Bitvise.下載地址分別如下:

Finalshell:http://www.hostbuf.com/t/988.html

Bitvise:https://www.wmzhe.com/soft-19339.html

Xshell:https://www.xshellcn.com/

在本博客中我使用的是Finalshell,因為其背景可以設置,相比其他兩款軟件無論是優化還是產品設計都更好一點,正常使用頁面如下。具體的Finalshell使用方法詳見官網。

現在我們來研究使用Kali-Linux兩種方法如何連接上SSH

①:基於口令認證的方式:

首先進入root權限,使用vi修改/etc/ssh/sshd_config文件,修改如下兩處

1|#PasswordAuthentication no
修改為:
PasswordAuthentication yes
2|PermitRootLogin without-password
修改為:
PermitRootLogin yes

保存后退出vi.

然后在root權限下,啟用SSH服務,命令如下

service ssh start
繼而設置開機SSH作為守護進程自啟動,命令如下:
update-rc.d ssh enable
此時通過SSH設置相應的IP地址,輸入用戶名與密碼即可SSH連接成功。

②:基於密鑰的認證方式

首先在root權限下,打開密鑰登錄的功能,編輯/etc/ssh/sshd_config文件進行如下修改

1|#PubkeyAuthentication no
修改為
PubkeyAuthentication yes
2|PermitRootLogin without-password
修改為:
PermitRootLogin yes
3|#AuthorizedKeysFile .ssh/authorized_keys 
去除前面的#注釋符

然后設置密鑰對,命令與選擇如下,其中需要輸入內容的地方可以直接按下Enter留空:

ssh-keygen -t rsa -b 4096 -m PEM
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:nloGAzevmrE1XNIwzn37L1aQoreQe9ditfSynWYJURg root@kali

此時產生的公鑰和私鑰都存在/root/.ssh/目錄下,接下來我們需要在服務器上安裝公鑰,命令如下

cd /root/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh

然后將私鑰id_rsa下載到客戶端上

設置登錄的連接方式是密鑰登錄,設置用戶名為root,載入私鑰並輸入添加私鑰時設置的密碼,使用SSH登錄連接,發現登錄成功。

最終發現SSH登錄成功,界面如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM