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