ssh基於密鑰認證的登陸方式

      (ssh:secure shell, protocol, 22/tcp,安全的遠程登陸)            
shell

SSH相關的安裝包:安全

    openssh-clients.x86_64 SSH的客戶端安裝包bash

    openssh-server.x86_64  SSH的服務器端安裝包服務器

    openssh.x86_64  SSh的通用設置,服務於服務器端和客戶端ssh

 

基於密鑰的認證:tcp

一、使用到的命令:ide

a)  ssh-keygen    生成ssh認證的私鑰和公鑰加密

b)  ssh-copy-id    ssh認證的公鑰從客戶端拷貝到服務器端生成authorized_keys文件,該文件中存放公鑰。spa

二、客戶端的操做:代理

        a)  生成密鑰對:

     非交互式:ssh-keygen –t rsa [-P ' ' ] [-f "~/.ssh/id_rsa"]

        -t:指定加密的方式

        -P:指定加密的密碼

        -f:指定生成的私鑰地址

   (該方式生成的私鑰在用於認證的時候須要輸入指定的密碼)

    交互式:ssh-keygen (直接回車就能夠了)

    (該方式會進行各類確認,提示是否生成相應的文件。)

       b) 把公鑰文件傳輸至遠程服務器對應用戶的家目錄:

        ssh-copy-id [-i [identity_file]][user@]host

    例如:ssh-copy-id  root@172.17.254.244

    會自動生成authorized_keys文件,這裏是存放的id_rsa.pub文件中的公鑰。

三、設置代理ssh-agent

    若是密鑰設置了密碼,每次輸入都很麻煩,這時候能夠用ssh-agent代理,只要輸入一次口令,以後均可以用。退出會話以後就失效。

        ssh-agent bash   啓動代理

       ssh-add  添加代理密碼(這個是交互式命令,若是私鑰有密碼,會自動提示輸入密碼。)

四、實現多臺客戶端的免密登陸

    以上介紹的都是兩臺機器之間的免密登陸,每臺機器對應家目錄下的.ssh/目錄下只有一個authorized_keys文件,如何實現同一臺服務器能夠多臺客戶端免密登陸呢?

根據以前咱們介紹的,在authorized_keys這個文件中存放的是客戶端ssh認證的公鑰,因此咱們能夠參考其中的格式,將客戶端ssh認證的公鑰所有存放到其中便可。

    固然,咱們就不能重複使用ssh-copy-id這個命令了,不然將會形成覆蓋,達不到預期的效果。

  a) 將客戶端對應家目錄中.ssh/目錄下生成的id_rsa.pub文件拷貝到服務器端

    scp ~/.ssh/id_rsa.pub 172.17.253.23

  b) 將從客戶端拷貝過來的公鑰內容,添加到authorized_keys文件中,具體作法以下:

    cat id_rsa.pub >> ~/.ssh/authorized_keys 

  c)只要將每一臺客戶端的公鑰都添加到服務器端authorized_keys文件中,就能夠實現多臺客戶端同時免密登陸服務器了。

相關文章
相關標籤/搜索