Linux SSH登陸原理

1. 使用口令登陸bash

    口令登陸是SSH最經常使用的登陸方式。其登陸流程大體以下:服務器

    1)客戶端 向 遠程服務器 發起SSH請求,遠程服務器 返回RSA公鑰ssh

    2)客戶端 輸入帳號密碼使用RSA公鑰加密,並把密文傳輸到 遠程服務器加密

    3)遠程服務器 使用RSA私鑰解密,並驗證帳號和密碼code

    4)登陸成功後,客戶端 把RSA公鑰保存到 ${HOME}/.ssh/known_hosts 文件中字符串

2. 無密碼登陸class

    客戶端 無密碼登陸到 遠程服務器,其原理大體以下:登錄

    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,把公鑰複製到相應的 遠程服務器 便可。

相關文章
相關標籤/搜索