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号
浙公网安备 33010602011771号