天天看點

Linux主機之間 使用 SSH 免密登入

        首先看SSH免密登入簡易原理圖: 主機A想要SSH免密登入主機B, 首先需要将主機A的SSH公鑰複制到主機B的授權清單檔案, A登入B時,B會檢視自己的授權清單檔案, 若存在A的公鑰,經過一系列驗證後,即可登入 

Linux主機之間 使用 SSH 免密登入

       首先準備兩台主機 SSH-A 和 SSH-B(注意:兩台主機必須能 ping 通)

       我的 SSH-A 主機的 IP 是:192.168.198.12, 

               SSH-B 主機的 IP 是:192.168.198.13 ,

       !!!!SSH Key 是針對主機中某一個使用者的, 每個使用者的SSH Key都不一樣

             開始(主機 SSH-A 免密登入主機 SSH-B):      

       1.  在 SSH-A 生成 使用者 SA 的 SSH Key

            在SA使用者下執行下面的指令:   ssh-keygen -t rsa

            中間的出現 Enter passphrase(empty for no passphrase) 和 The key fingerprint is  直接回車, 預設的就行

Linux主機之間 使用 SSH 免密登入

        2.  預設生成的 .ssh 目錄預設儲存在使用者主目錄下(我這的使用者主目錄是/home/SA ),進入.ssh目錄

             進入使用者主目錄, 由于.ssh是隐藏檔案,需使用 ls-all 指令才能看到 

Linux主機之間 使用 SSH 免密登入

        3.  将.ssh目錄下的 id_rsa.pub 遠端拷貝到 SSH-B 主機上(遠端拷貝指令 scp)

             scp id_rsa.pub [email protected]:/home/SB

             此指令的意思是:從本機将 id_rsa.pub 檔案 以 SB 這個使用者的身份 寫到192.168.198.13(SSH-B)主機下的 home/SB 目               錄下, SB 是 SSH-B主機上的一個使用者,  /home/SB 是 SSH-B 的使用者主目錄, 中間需要輸入 SB 的使用者密碼

Linux主機之間 使用 SSH 免密登入

        4. 在主機 SSH-B 裡, 進入 /home/SB 目錄(以 SB 這個使用者的身份), 同樣的過程, 為 SB 使用者生成 SSHKey

            并進入 .ssh 目錄下

Linux主機之間 使用 SSH 免密登入

        5. 将 SSH-A 的公鑰添加到 SB 使用者 .ssh 目錄下的 authorized_keys 檔案中, 若 authorized_keys 不存在, 則手動建立一                個,注意:authorized_keys 的權限必須為 -rw------,即隻有SB這個使用者可讀可寫, 其他無任何權限

              可通過 chmod 600 authorized_keys 修改權限

Linux主機之間 使用 SSH 免密登入

        6. 測試登入, 登陸成功, 大功告成

            ssh [email protected]    表示使用 SB 這個使用者 登入 192.168.198.13 主機

Linux主機之間 使用 SSH 免密登入

追求完美: 

1.  遠端登入到别的主機後怎麼 回到原來的主機

     從主機SSH-A 登入到 SSH-B主機: ssh [email protected]

    回到原來的主機: ssh [email protected]

    問題: 登入回源主機時需要輸入 SA 的使用者密碼, 因為我們沒有将 使用者 SA 的 public key 添加到 使用者SA 的             

                authorized_keys 檔案中, 隻需要在使用者SA 的authorized_keys 檔案中添加 SA 自己 的公鑰, 即可免密切換回源主                 機主機

2.  執行 ssh [email protected] 遠端登入時發現還需要輸入密碼

     (1).  檢查檔案名是否錯誤, 必須為 authorized_keys

     (2).  檢查authorized_keys的權限是否為-rw------

     (3). 若(1), (2)都沒問題, 則給 SB 使用者添加超級使用者權限

            方法:打開 /ect/sudoers 檔案, 找到 root      ALL=(ALL)       ALL行,

                                        在這行下面添加一行 SB      ALL=(ALL)       ALL 即可