1. 程式人生 > 其它 >[Tips] Linux ssh 基於金鑰檔案免密登陸

[Tips] Linux ssh 基於金鑰檔案免密登陸

  1. 服務端生成金鑰檔案
ssh-keygen -m PEM -t rsa -b 2048 -v -f mbp16_lgy -C "$(whoami)@$(hostname)-$(date -I)"

命令說明:
-m : key_format, 金鑰的格式
-t:加密演算法,有dsa ecdsa ed25519 rsa rsa1
-b:bits,加密位數
-v:列印詳細輸出
-f: 輸出檔案
-C:新增金鑰對的說明comment。

  1. 重新命名私鑰
mv mbp16_lgy mbp16_lgy.pem
  1. 將公鑰內容寫入authorized_keys
cat ~/mbp16_lgy.pub >> ~/.ssh/authorized_keys

公鑰可以刪除了。

  1. 編輯/etc/ssh/sshd_config
    確保裡面:
RSAAuthentication yes
PubkeyAuthentication yes

#下面這個如果是不註釋的,那麼檔案要與公鑰寫入的檔案一致
#AuthorizedKeysFile     %h/.ssh/authorized_keys

如有修改,需要重啟ssh服務:

sudo service sshd restart
  1. 將pem私鑰下載到本地
    在客戶端機器上
scp -P 埠號 使用者名稱@服務HOST:~/mbp16_lgy.pem ~/.ssh
chmod 700 ~/.ssh/mbp16_lgy.pem
  1. 編輯.ssh/config
    新增
Host alias別名
  HostName HOST域名或IP
  User 使用者名稱
  Port 埠
  IdentityFile ~/.ssh/mbp16_lgy.pem