ssh 免密登入及其原理

2021-12-30 10:01:45 字數 1397 閱讀 9820

引用百度百科的一句話,ssh 為 secure shell 的縮寫,由 ietf 的網路小組(network working group)所制定;ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。

說白了ssh其實就是一種遠端登入的協議,由於它的權威性,目前是比較安全和可靠的。

在linux中如何從一台機器a登入到另外一台機器b中?在linux中 要想從a登入到b 就可以使用 ssh username@b 然後 只需要輸入密碼就可以 這個預設是用的埠是21 如果埠不是21 則加 -p 並且指定埠 ,這種方式登入使用的是口令登入,只要知道帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但缺點是:不能保證你正在連線的伺服器就是你想連線的伺服器。因為這個伺服器可能是偽造的 這樣你的賬號和密碼就會統統洩露,哈哈 到時候 你就悲劇了。

這種驗證方式是 客戶端需要生成一對ssh的公私鑰,也就是生成 公鑰和私鑰,假設現在想在a機器想通過基於秘鑰的驗證方式登入到機器b中,則需要做一下步驟。

1 在機器a中生成一對公鑰和私鑰

在linux生成公鑰私鑰非常簡單 只需要執行

ssh-keygen -t rsa -p '' -f ~/.ssh/id_rsa然後通過scp命令 copy到 遠端機器b中

cd .ssh

scp id_rsa.pub username@b:/home/username/.ssh/authorized_keys

執行上面的命令之後 會提示使用者命令 只需要輸入密碼就可以了,以後就可以通過ssh username@b 來登入了

免密登入原理如下 來自於網路

**,server a免登入到server b:

1.在a上生成公鑰私鑰。

2.將公鑰拷貝給server b,要重新命名成authorized_keys(從英文名就知道含義了)

3.server a向server b傳送乙個連線請求。

4.server b得到server a的資訊後,在authorized_key中查詢,如果有相應的使用者名稱和ip,則隨機生成乙個字串,並用server a的公鑰加密,傳送給server a。

5.server a得到server b發來的訊息後,使用私鑰進行解密,然後將解密後的字串傳送給server b。server b進行和生成的對比,如果一致,則允許免登入。

總之:a要免密碼登入到b,b首先要擁有a的公鑰,然後b要做一次加密驗證。對於非對稱加密,公鑰加密的密文不能公鑰解開,只能私鑰解開。

ssh登入原理及免密登入

之前這篇部落格 將linux裝置設定為伺服器 是讓windows訪問server的。現在想用linux主機訪問另一台linux主機,實現免密登入,其登入原理如下 按原理走就行了 事先在兩台機器的 etc hosts檔案中新增ip 1.client generate a pair of keys ss...

SSH免密登入

a為本地主機 b為遠端主機 生成公鑰私鑰對 ssh keygen t rsa登入遠端機器 ssh root 然後輸入密碼 將.ssh的許可權設為700 mkdir ssh 如果資料夾已存在,跳過 chmod 700 ssh將本地生成的rsa公鑰複製到遠端機器 scp ssh id rsa.pub r...

SSH免密登入

當我們在配置多台計算,使之可以相互使用無密碼登入 ssh,之前都是一台一台的配置,現在一台a上新增b,然後在另一台b上再次新增a,這樣使得authorized keys中的內容相同,但時並不是完全相同,比如新增順序。如果超過2臺,這種配置就相當複雜了,而且容易出錯。後來,在網上看到了一種簡單的配置,...