ssh設置密鑰登陸
起因
今天刷視頻時候刷到某博主說他設備開啟內網穿透后,發現被ssh爆破,頓時覺得安全這塊還是稍微加強一些,于是準備把阿里云以及自己的幾臺配置了內網穿透的設備的ssh登陸從密碼登陸換成密鑰登陸。
設備
阿里云服務器:ubuntu
客戶端1:windown10
客戶端2:ubuntu
具體操作
1.在客戶端生成密鑰,并復制公鑰內容
1.1 windows10
打開PowerShell輸入:
ssh-keygen -t ed25519 -C "your_email@example.com"
然后一路回車,中途有生成Passphrase的詢問,一律沒理。
然后系統會告訴你,生成了私鑰和公鑰的路徑,大致是:
Your identification has been saved in C:\Users\<用戶名>\.ssh\id_ed25519
Your public key has been saved in C:\Users\<用戶名>\.ssh\id_ed25519.pub
其中私鑰是id_ed25519,公鑰是id_ed25519.pub。
然后輸入:
type "C:\Users\<用戶名>\.ssh\my custom_key.pub"
可以看到終端會打印出公鑰的內容,類似于:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIjr5X7xl1eZwZkZ1aQ2oB1f8Y7addGvFtJ8WmZbY1b7T your_email@example.com
可以把它復制下來。
1.2 Ubuntu系統
打開終端,生成密鑰:
ssh-keygen -t ed25519 -f ~/.ssh/new_key -C "new_email@example.com"
終端會輸出
Generating public/private ed25519 key pair...
Your private key is saved in /home/user/.ssh/new_key
Your public key is in /home/user/.ssh/new_key.pub
接下來使用cat查看公鑰的內容:
cat ~/.ssh/new_key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIoehzNxifzcG2qEYgF66MWxmE6B5dEQRY1XGfHV6Rr8 new_email@example.com
然后也把公鑰復制下來。
2.把公鑰復制到服務器上面
首先,先登陸到服務器上,然后運行
echo "粘貼的公鑰內容" >> ~/.ssh/authorized_keys
把之前復制的公鑰的內容復制在""里面并執行。
再修改權限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3.修改服務器ssh配置并重啟服務使生效
sudo nano /etc/ssh/sshd_config
在配置文件里找到PasswordAuthentication和PubkeyAuthentication欄,修改
PasswordAuthentication no
PubkeyAuthentication yes
除此之外,還可以修改默認的22端口
Port 666
修改完成后,需要重啟sshd服務
sudo systemctl restart sshd
4.登陸測試
使用任一客戶端ssh登陸服務器。
ssh -p 666 用戶名@服務器IP
直接登陸,成功。

浙公網安備 33010602011771號