使用秘钥登录并禁止密码登录的一个好处是,可以有效防止暴力破解服务器密码。当然如果你的本地计算机被黑了,也是歇逼。
如何做呢,我是以window10下的xftp和xshell来做的。非常简单。
打开xshell 或者 xftp中的任何一个。如下图生成密钥对,会在软件默认目录生成私钥,并在你选择的地方生成公钥。
然后就是老一套,上传公钥pub文件去ubuntu主机了。在.pub文件所在目录下打开powershell 或者 cmd,输入如下命令。就是把pub粘贴复制到远程的authorized_keys文件中。
1 | type vultr_test.pub | ssh root@149.28.128.221 "cat >> .ssh/authorized_keys" |
然后就好了,你在xftp或者xshell中选择用秘钥登录即可。
顺便说下Ubuntu上的.ssh/authorized_keys 文件你在xftp中的位置是 /root/.ssh 因为.ssh是隐藏文件所以如果要显示必须在xftp工具=》选项中设置显示隐藏文件。
还有就是老版本的ubuntu服务器比如 18.04 在cd ~/.ssh 这个位置,也就是 /root/下是没有.ssh文件夹的,需要手动创建,并创建其中的”authorized_keys” 空白文件,然后再执行上面的命令。
说了半天,客户端都是win10,如果客户端是Linux的话,我再写一篇来专门说怎么搞。
如果要删除服务器上的公钥的话,vultr官网上说只能,手动去删除.ssh/authorized_keys上对应的公钥字符串。但你要小心如果这时候你已经关闭了密码登录,那就没法登录了。只能重新安装实例了。
关闭ssh密码登录
修改配置文件/etc/ssh/sshd_config
把#号去掉,yes改为no即可
此时该设备只能用密钥登录
PS: 实测ubuntu18.04 必须同时修改2项才行
PubkeyAuthentication yes
PasswordAuthentication no
修改完毕后重启ssh 服务:
sudo service ssh restart