免密登錄原理


免密登錄原理

​ 在linux中進行各個系統之間進行ssh通信時,必須知道對方的賬戶密碼,才能進行相應的操作。通過rsa加密技術,可以實現免密登錄。其通信流程如下圖所示:

ssh安裝

sudo yum install -y openssh-server

集群免密登錄

  • 只要服務器B有服務器A的公鑰,服務器A則可免密登錄服務器B。(注意服務器B本機配置了免密登錄)

  • 集群任意兩台機器免密登錄的方法

    • 通過RSA加密算生成了密鑰(包括私鑰和公鑰)。把公鑰追加到用來認證授權的key中去,配置本地免密登錄。每台機器都需要!!!
    • 將其余每台機器生成的~/.ssh/id_dsa.pub公鑰內容追加到其中一台主機的authorized_keys中。
    • 將這台機器中包括每台機器公鑰的authorized_keys文件發送到集群中所有的服務器。(這樣集群中每台服務器都擁有所有服務器的公鑰,這樣集群間任意兩台機器都可以實現免密登錄了。)

本機免密配置

​ 需要先設置本機免密登錄

cd ~
ll -a  # 查看是否存在.ssh/
ssh localhost # 若不存在.ssh/,則執行該語句


cd ~/.ssh
ssh-keygen -t rsa  # 1. 使用rsa加密方式生成密鑰對; 生成的文件有id_rsa;id_rsa.pub
cat ./id_rsa.pub >> authorized_keys  # 2. 公鑰加入到authorized_keys
ssh localhost  # 測試,免密即成功
  • Error:設置了authorized_keys卻仍然需要密碼
# SSH不希望用戶目錄、~/.ssh目錄、authorized_keys 對組有寫權限
chmod g-w /home/hadoop   # 如果是root,則為  /root
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

群組免密配置

​ scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,類似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 Slave1 上 hadoop 用戶的密碼(hadoop),輸入完成后會提示傳輸完畢,如下圖所示:

scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

接着在 Slave1 節點上,將 ssh 公匙加入授權:

ssh localhost  ~/.ssh       # 如果不存在該文件夾需先創建,若已存在則忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub    # 用完就可以刪掉了

這樣,在 Master 節點上就可以無密碼 SSH 到各個 Slave 節點了,可在 Master 節點上執行如下命令進行檢驗,如下圖所示:

ssh Slave1

除了上面這種方式,還可以利用scp-copy-id命令進行認證文件的拷貝操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM