免密登入
先進入 /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 協議》,轉載必須註明作者和本文連結