SSH 加密連線(免密碼登入)

    應用:

    1. 使用 rsync 指令同步兩地的主機的不同目錄
      主機 A 定期執行 rsync 指令,將本地目錄的檔案同步到遠端主機 B 的目錄。
    2. Nagios 主機監控另一台 Oracle DB 主機
      主機 A 是 Nagios 監控主機(用私鑰)
      主機 B 是 Oracle DB(用公鑰)
      在主機 A 上要能遠端執行 主機 B 的 Oracle 相關指令
    3. 公鑰與私鑰的使用原則
      • 要執行遠端主機上的指令,本地主機要用私鑰;遠端主機用公鑰。
      • 需要管控多部主機可以分別遠端登入同一部主機時,多部不同主機的本地端使用不同的私鑰;而遠端主機可使用多個公鑰來管理。
    在 主機 A)

    建立金鑰檔

    ssh-keygen -t rsa
    

    Generating public/private rsa key pair.
    Enter file in which to save the key (<your-home-dir>/.ssh/id_rsa): 按 Enter
    Enter passphrase (empty for no passphrase): 按 Enter
    Enter same passphrase again: 按 Enter

    以上指令會產生兩個檔案

    1. Private Key: id_rsa
    2. Public Key: id_rsa.pub
    chmod 0600 <your-home-dir>/.ssh/id_rsa
    

    NOTE:

    將 id_rsa.pub 複製到 主機 B 。

    如果有設定 passphrase,在每次登入遠端 SSH 時都會提示要輸入。

    複製主機 A 的公鑰檔 id_rsa.pub 至遠端主機上

    指令一:從主機 A 上執行

    ssh-copy-id user@remote-host-ip 
    or
    ssh-copy-id -f -i $HOME/.ssh/id_rsa.pub user@remote-host-ip

    指令二:從主機 A 上執行

    cat ~/.ssh/id_rsa.pub | ssh user@remote-host-ip "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
    

    從主機 B 上執行,以手動方式複製:

    cd ~/.ssh
    mv id_rsa.pub host-A-hostname.pub
    cat host-A-hostname.pub >> authorized_keys
    chmod 0700 ~/.ssh
    chmod 0640 authorized_keys

    NOTE:

    如果 .ssh 目錄裡已經有 authorized_keys 檔案,可以另存一個檔名加上 2,例如 authorized_keys2

    測試連線

    從主機 A 上執行

    ssh <remote-userB>@<remote-hostB-name>
    

    不需要輸入密碼就可以登入。

    延伸閱讀

    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core