1. 程式人生 > >ssh服務之 遠程登錄和端口轉發

ssh服務之 遠程登錄和端口轉發

繼續 沒有 分享圖片 需要 隨機字符串 端口號 公鑰加密 pre mage

一:Ssh遠程登錄服務

介紹:SSH 是創建在應用層和傳輸層基礎上的安全協議,為計算機上的 Shell(殼層)提供安全的傳輸和使用環境。

遠程登錄ssh服務主要應用於遠程登錄

命令如下:

ssh [user@]host [COMMAND]

ssh [-l user] host [COMMAND]

-p port:遠程服務器監聽的端口

-b:指定連接的源IP

-v:調試模式

-C:壓縮方式

-X: 支持x11轉發

-Y:支持信任x11轉發

ForwardX11Trusted yes

-t: 強制偽tty分配

ssh -t remoteserver1 ssh remoteserver2

SSH 采用公鑰加密的方式來保證傳輸安全。過程如下:

1.客戶端發起登錄請求,遠程主機將自己的公鑰發個用戶;

2.客戶端使用該公鑰將登錄密碼加密後發送給遠程主機;

3.遠程主機使用私鑰解密登錄密碼,如密碼正確則允許客戶端登錄

兩種登錄方式:密碼登錄 公鑰登錄

1.密碼登錄:

當我們第一次登錄某臺主機是會有如下提示:

技術分享圖片

提示我們是否接受對方公鑰,來繼續連接。(公鑰:公鑰采用RSA算法,長度較長難以比對,所以對其進行MD5計算,得到128位的指紋,即上例中的3a:45:30:52:b5:ea:2a:55:e7:23:41:ef:16:76:0b:8d

輸入yes後,提示我們輸入密碼。

技術分享圖片

輸入正確後,登陸成功。終端切換成對方主機

技術分享圖片

當遠程主機的公鑰被接受以後,它就會被保存在文件$HOME/.ssh/known_hosts之中。下次再連接這臺主機,系統會發現它的公鑰已經保存在本地了,從而跳過警告部分,直接提示輸入密碼。

2.公鑰登錄:

“公鑰登錄”原理是:用戶將自己的公鑰儲存在遠程主機上。登錄的時候,遠程主機會向用戶發送一段隨機字符串,用戶用自己的私鑰加密後,再發回來。遠程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄shell,不再要求輸入密碼。

技術分享圖片

公鑰登錄需要用戶提供自己的公鑰,一般保存在 $HOME/.ssh/ 目錄下,id_rsa是私鑰,id_rsa.pub是公鑰。如果沒有可以通過ssh-keygen生成。

公鑰發送過去後,此後登錄就不需要密碼了。

遠程主機將用戶的公鑰,保存在 $HOME/.ssh/authorized_keys 中。公鑰是一段字符串,也可以手動追加到遠程主機authorized_keys文件中,每行一個。

二:遠程轉發

本地轉發

本地轉發是指:把本地主機端口通過待登錄主機端口轉發到遠程主機端口上去。

本地轉發通過參數 -L 指定,格式: -L [本地主機:]本地主機端口:遠程主機:遠程主機端口

示例

ssh –L 9527:telnetsrv:23 -N sshsrv

telnet 127.0.0.1 9527

當訪問本機的9527的端口時,被加密後轉發到sshsrv的ssh服務,再解密被轉

發到telnetsrv:23

遠程轉發

遠程轉發是指:把登錄主機端口通過本地主機端口轉發到遠程主機.

遠程轉發通過參數 -R 指定,格式: -R 登錄主機端口:遠程主機:遠程主機端口

示例:

ssh –R 9527:telnetsrv:23 –N sshsrv

sshsrv偵聽9527端口的訪問,如有訪問,就加密後通過ssh服務轉發請求到本

ssh客戶端,再由本機解密後轉發到telnetsrv:23

動態轉發

動態轉發不需要指定特定的目標主機和端口號,可以實現不加密的網絡連接,全部走SSH連接,從而提高安全性。

ssh服務之 遠程登錄和端口轉發