unbuntu16.04 伺服器的 免密登入、祕鑰登入和禁止密碼登入 配置

安靜的美男子發表於2019-01-25

免密登入

先進入 /Users/USERNAME/.ssh 目錄,看一下有沒有 id_rsa 和id_rsa.pub 這兩個檔案 如果有請忽略 步驟一

步驟一

我的是mac 終端命令列執行 然後一路回車

ssh-keygen -t rsa

進入以下目錄

/Users/USERNAME/.ssh

會生成有兩個檔案 私鑰id_rsa、公鑰id_rsa.pub

步驟二

把公鑰拷貝到需要登入的遠端伺服器或Linux系統上,這裡可以使用ssh-copy-id

ssh-copy-id -i/Users/USERNAME/.ssh/id_rsa.pub root@ip

但是ssh-copy-id預設埠是22,如果您的SSH埠不是22,也就是遠端伺服器埠修改成其他的了,那就要得加上 -p +埠。

進入遠端伺服器需要SSH登入的使用者的目錄下,這裡仍然用root使用者,cd /root/.ssh,執行ls看看目錄下是否有authorized_keys檔案,如果沒有的話則執行以下命令建立:

touch authorized_keys

執行成功會建立空authorized_keys檔案,授予600許可權(注意:此處許可權必須是600):

chmod 600 /root/.ssh/authorized_keys

如果已經有了authorized_keys檔案,這直接執行以下的金鑰追加工作。

將上面生成的公鑰id_rsa.pub追加到authorized_keys檔案中:

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

如下圖所示,注意圖中紅色箭頭處,是>>而不是>,雙尖括號>>表示像向檔案中追加:
單尖括號>表示將檔案內容全部替換掉;也就是說使用單尖括號>,authorized_keys檔案裡面如果原來有內容的話就全部不在了。

測試是否成功

ssh root@ip

若可直接登入 就完成了免密登入

如果此時想讓其他人也免密登入 可以把本地的id_rsa 檔案拷貝給別人 執行命令

ssh -i id_rsa root@ip 

也是可以免密連結
當然 要記得修改伺服器上的 sshd 配置 把允許祕鑰登入開啟
編輯配置檔案

 vim /etc/ssh/sshd_config

將其中幾個引數配置改為以下配置

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

重啟ssh配置生效

service sshd restart

祕鑰登入

有兩種 但也要注意 要開啟 允許祕鑰登入的配置

  • 1.就是上文免密登入中的最後,利用 私鑰登入

  • 2.從伺服器下載

    [username@host ~]$ cd ~/.ssh

    [username@host ~]$ ssh-keygen // 一路回車

    [username@host ~]$ cat id_rsa.pub >> authorized_keys

    [username@host ~]$ chmod 600 authorized_keys

    [username@host ~]$ chmod 700 ~/.ssh

    // 下載私鑰

    [local@host ~]$ sudo scp -i USERNAME@HOST /usr/USERNAME/.ssh/id_rsa /LOCAL_PATH/id_rsa

    // 測試祕鑰登入

    sudo ssh USERNAME@HOST -i /LOCAL_PATH/id_rsa

禁止密碼登入

伺服器修改配置

    vim /etc/ssh/sshd_config

    PasswordAuthentication no #修改之前一定要確認你的祕鑰可以正常使用

重啟ssh生效

    service ssh restart

本作品採用《CC 協議》,轉載必須註明作者和本文連結

安靜的美男子

相關文章