前言
随着我服务器上Alist资源的增多,服务器【本身】这个存放着Alist内所有密码(虽然都是随机生成的)的存在就显得非常的脆弱。
尽管我的ssh密码选择了随机生成并交给电脑记住,但是服务器被攻破导致全部密码我都得改一遍的后果我承担不起。
另注:因为上传到云盘的重要资料我都进行了加密上传,因此我倒不是很担心云盘内的资料泄露,只是改密码太麻烦了而已。
SSH仅密钥登录设置
对于windows来说,没有ssh-copy-id这个工具。
但是没关系,git bash有啊。
复制粘贴文件还是太麻烦了,有工具用工具,这才是人类啊(雾)
玩git的应该都不缺一个ssh公私钥对,但是为了博客完整,还是将代码贴在这里吧:
# 生成
ssh-keygen -t rsa -b 4096# 复制公私钥
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip# 修改配置项,命令下面四行是配置内容。
sudo nano /etc/ssh/sshd_config# ===== 配置内容 =====
# 禁用密码登录
PasswordAuthentication no
# 禁用 root 用户直接登录(可选,但推荐)
PermitRootLogin no
# 确保以下选项已设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# ===== 配置内容 =====# 重启
sudo systemctl restart sshd# 测试
ssh username@server_ip
如果只是想要代码,上面已经是完整的代码了,拿去就可以用。
如果想要接着看配置步骤,就接着往下读:
在哪里打开bash都无所谓
涂得糊的看不清了,不过也没办法,总之就是这样,理论上说这里应该需要输入一次密码,但是自动跳过了,看来我之前已经做过了这一步,上传过公钥认证了。
那么接下来应该关闭密码认证就好了。
拉到最底下就能看到了
翻阅整篇配置项,没有找到认证配置
但是找到了Include,看看inlude了个啥
没找到内容,无妨,就这样吧。(重启服务的图没截进来)
好,完事。
模仿攻击者
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no username@server_ip
好,被秒拒了,安全性+1