我最近在将我的发行版升级到最新的 LTS 时遇到了一些问题,并允许我的本地管理员通过 ssh 登录我的笔记本电脑,使用我的用户名并授予他们 root 访问权限。
虽然这很有帮助,但我想通过阻止 ssh 访问我的 ssh 来保护我的机器。
是否可以找到为该用户创建的 ssh 密钥并将其删除?
这会阻止进一步的访问吗?
客户端 ssh 密钥存储在哪里?
我查看了一下,似乎编辑/etc/ssh/sshd_config
和取消注释PermitRootLogin no
是一种解决方案,但似乎阻止我自己登录并在将来获得 root 访问权限。
答案1
这里有几个事情,首先你可以删除用户
sudo userdel -r <username>
其次,私钥存储在 ~/.ssh/identity 中,这是在他的计算机上(假设他使用的是基于 unix/linux 的系统),不是您的问题。公钥存储在 ~/.ssh/identity.pub 中,因此当您删除他的用户帐户时,-r 标志也会删除他的主目录,包括他的 .ssh 目录。公钥必须放在远程计算机的 /root/.ssh/authorized_keys 中,设置才能正常工作。因此,请确保他的密钥也已从那里删除。
最后,无论如何,您都应该进行上述更改。PermitRootLogin 仅适用于 ssh 访问。如果将其设置为 no,则可以使用您的用户帐户 ssh 登录,然后sudo su
bam 您的 root。无论如何,您都应该这样设置它。
我还建议您做一些额外的更改以提高 SSH 安全性。
公钥和密码的设置
编辑 /etc/ssh/sshd_config 文件。在文件中添加以下行:
AuthenticationMethods publickey,password
警告:确保 PasswordAuthentication 如下所示:
#PasswordAuthentication yes
这将要求用户拥有一个有效的用户帐户和密码,以及一个用于 ssh 登录的公钥。