安全建议 - ssh root 访问登录

安全建议 - ssh root 访问登录

我想针对我的情况得到一些建议:

我有一台具有公共 IP 地址的服务器。我有一个带密码的 root 用户。我已关闭(在 sshd 中)PermitRootlogin = No

问题/提示/建议:

我如何删除 root 密码并使用 ssh 访问此服务器而无需任何密码?我是否只需要对用户使用 sudo 即可获得 root 访问权限?

谢谢

答案1

我会一一回答您的问题;-)。

如何删除 root 密码

贝沃尔如果你想做任何事,你需要另一个拥有 sudo 全部权限的用户!在 Ubuntu 或 Debian 上,用户必须属于该组行政。通过 ssh 以该用户身份登录并尝试使用 获得 root 访问权限sudo -i。如果成功,您可以继续使用 停用 root 登录,然后passwd -l root就大功告成了。

无需密码即可访问服务器

可以使用 ssh 密钥对访问服务器。这很简单,而且在大多数情况下比普通密码更安全。首先,您必须在客户端 PC 上生成这样的密钥对。如果您使用的是 Linux/Unix,您可以使用 执行此操作ssh-keygen -t rsa。建议使用密码锁定此密钥对,这样只有您可以使用它们!大多数桌面环境(如 Gnome、Unity 和 Kde)能够在您解锁密钥环/钱包后自动解锁该 ssh 密钥。

现在你需要部署你的公钥(默认〜/.ssh/id_rsa.pub) 添加到服务器上的文件 * ~/.ssh/authorized_keys * 中。您可以手动或使用命令执行此操作ssh-copy-id user@server

如果使用密钥登录成功,您可以通过禁用 ssh 密码登录来提高安全性。要存档,您需要更改文件中的以下行/etc/ssh/sshd_config PasswordAuthentication yesPasswordAuthentication no重新启动 ssh 服务器。

我只需要使用 sudo 吗?

不,但建议这样做!但这取决于您使用服务器的方式。如果您是唯一有权访问服务器的用户,那么您选择什么并不重要,但如果有多个用户,sudo 会更有意义,因为您不必共享 root 密码即可获得 root 或特权访问权限。如果您决定其中一个用户不再具有 root 访问权限,则只需删除 sudo 权限,而不必更改 root 密码并与所有人再次共享。但并非所有事情都可以用 sudo 完美完成。

答案2

如果您想直接以 root 身份登录而无需密码,则无需删除 root 密码。相反,您可以PermitRootLogin without-password在 sshd 配置中进行设置,重新启动 sshd,为客户端生成(通过 ssh-keygen 或 puttygen.exe)密钥,将内容复制.ssh/id*.pub到服务器(或从 puttygen 导出)~root/.ssh/authorized_keys并使用它以 root 身份访问您的服务器。您可以生成客户端密钥而无需密码(不太安全)或有密码,但使用 ssh-agent/pageant.exe,它会记住您的密码以供后续登录。

答案3

调整 sshd 配置很敏感;您应该了解很多细微差别。但是,基本上...

拿出你的公钥,你可能需要在系统上生成一个密钥对,并将其安装在服务器上 root 主目录中的 .ssh 目录中。设置“PermitRootLogin yes”,然后验证当你 ssh 到服务器时它是否允许你进入而不提示你输入密码。然后将“PasswordAuthentication”设置更改为“no”。

注意:PasswordAuthentication=no 将影响与系统的所有连接,因此我的答案将影响所有人。您可以逐个控制用户,例如这个问题。

相关内容