天天看點

Linux SSH登入原理

1. 使用密碼登入

Linux SSH登入原理

    密碼登入是SSH最常用的登入方式。其登入流程大緻如下:

    1)用戶端 向 遠端伺服器 發起SSH請求,遠端伺服器 傳回RSA公鑰

    2)用戶端 輸入賬号密碼使用RSA公鑰加密,并把密文傳輸到 遠端伺服器

    3)遠端伺服器 使用RSA私鑰解密,并驗證賬号和密碼

    4)登入成功後,用戶端 把RSA公鑰儲存到 ${HOME}/.ssh/known_hosts 檔案中

2. 無密碼登入

Linux SSH登入原理

    用戶端 無密碼登入到 遠端伺服器,其原理大緻如下:

    1)用戶端 向 遠端伺服器 發起SSH請求,遠端伺服器 傳回一個随機字元串

    2)用戶端 使用RSA私鑰加密随機字元串,并把密文傳輸到 遠端伺服器

    3)遠端伺服器 使用 用戶端 提供的RSA公鑰,解密密文并驗證身份

配置步驟:

1)在 用戶端 生成RSA密鑰對

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
           

執行指令後,會在 ${HOME}/.ssh 目錄下生成 id_rsa(私鑰)和 id_rsa.pub(公鑰)兩個檔案

2)複制 用戶端 RSA公鑰到 遠端伺服器

# 方法一

# 把 用戶端 的 ${HOME}/.ssh/id_rsa 公鑰檔案,複制到 遠端伺服器 ${HOME}/.ssh 目錄
scp ${HOME}/.ssh/id_rsa '{使用者}@{遠端伺服器}':${HOME}/.ssh

# 登入 遠端伺服器,建立 ${HOME}/.ssh/authorized_keys 檔案(如果有就不用建立)
touch ${HOME}/.ssh/authorized_keys

# 修改檔案權限
chmod 0600 ${HOME}/.ssh/authorized_keys

# 把 用戶端 的RSA公鑰加入到authorized_keys(不要把檔案清空,隻加到檔案末尾)
cat ${HOME}/.ssh/id_rsa.pub >> ${HOME}/.ssh/authorized_keys
           
# 方法二

# 在 用戶端 上使用 ssh-copy-id 指令,把公鑰複制到 遠端伺服器
ssh-copy-id '{使用者}@{遠端伺服器}'
           

3)完成上面兩步後,在 用戶端 上就可以無密碼登入 遠端伺服器 了

4)用戶端 若需要無密碼登入多台 遠端伺服器,隻需要重複步驟2,把公鑰複制到相應的 遠端伺服器 即可。

版權聲明:本文為CSDN部落客「weixin_34185512」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34185512/article/details/91835744

繼續閱讀