众所周知,很多云服务器商的 VPS 都提供的是 用户名/密码 的 SSH 登陆方式,尤其是一些国外厂商,而且很多还是 root 用户。这样安全性比较低,更好的方法是换用密钥对的方式连接 SSH,再者使用密钥对也免去了每次登陆输入密码的繁琐操作
利用 Powershell 生成密钥对
密钥对需要在本地保存,所以最好直接在本地电脑生成,然后再部署到 VPS
打开 Powershell,输入命令
ssh-keygen -t rsa
然后根据提示需要:
- 输入生成的密钥文件名(或路径)
- 输入密码(可以为空)
- 确认密码
如下图,创建了名为 example 的密钥对
创建完成后,会在对应目录生成两个文件,分别是没有后缀的私钥文件和后缀为 .pub
的公钥文件
部署到 Linux VPS
登录到 Linux VPS,执行:
mkdir -m 700 ~/.ssh #创建文件夹,如此文件夹已存在,也要确保权限为700 cd ~/.ssh #进入文件夹 vim authorized_keys #创建公钥文件 #粘贴刚刚生成的公钥 chmod 600 authorized_keys #赋予文件权限 vim /etc/ssh/sshd_config #修改ssh设置
ssh 配置中,有以下几个选项可以根据情况设置
RSAAuthentication yes #开启密钥登录 PubkeyAuthentication yes #开启公钥登录 AuthorizedKeysFile .ssh/authorized_keys #设置公钥文件 PermitRootLogin yes #允许以root身份登录 PasswordAuthentication no #关闭密码登录
设置完成后重启 sshd 服务
systemctl restart sshd
Windows Terminal 配置密钥对登录
打开 Windows Terminal 设置,添加新配置文件,在“命令行”中输入:
ssh.exe -i [本机密钥路径] [用户名]@[ip地址]
保存后选择刚刚添加的配置文件新建标签页即可自动连接
文章评论