抱歉,如果这个问题之前已经有人问过,但我在这里或谷歌上找不到它。
我设置了公钥/私钥,并成功嵌入到我的 VPS 服务器中,它可以使用 putty 完全工作并进行身份验证,然后我登录并拥有完全访问权限。
我的问题是我不想允许 root 登录,而这个 SSH 密钥对是用 root 创建的。我该如何添加 ssh 公钥以表示“newuser”,以便我可以使用“newuser”而不是“root”进行 ssh 登录,因为我想拒绝 SSH 访问?
谢谢
答案1
笔记:首先,不要从下面列出的文件中删除密钥以外的任何东西。
在您确定新帐户可以通过 sudo 访问所有内容之前,请不要从 sudoers 中删除 root 密码或 root。
使用您的 root 帐户登录服务器。(猜测服务器上不是 Ubuntu)
在服务器上创建一个新用户,并确保他们有 sudo 权限。Ubuntu 方式https://help.ubuntu.com/community/Sudoers,但由于服务器上有 root 权限,我猜想服务器上不是 Ubuntu。如果不清楚,请询问更多信息。
用户权限规范
root 全部=(全部) 全部 newUSER 全部=(全部) 全部
退出服务器。
再次通过 ssh 进入服务器,这次使用新帐户
ssh newUSER@你的服务器
- 在服务器上使用你的新帐户通过无风险的方式测试 sudo。
sudo apt-get 更新 <<<<- 如果这可以让您运行 sudo 命令而不会抱怨不在 sudoers 文件/sudo 组中,则您有一个有效的 sudo 帐户。
- nano 或 vim 或使用您最喜欢的终端编辑器从此文件 home/YOURUSERNAME/.ssh/authorized_keys 中删除密钥
- 此文件可能位于其他发行版的其他位置,因此如果不在上述位置,请“查找”或“定位”authorized_keys。由于您要对 root 帐户的文件执行此操作,因此您必须使用“sudo location”或“sudo find”来搜索 root 拥有的目录。
7.再次注销并将密钥复制给新用户。ssh-copy-id newUSER@yourserver
使用密钥登录并在 /etc/ssh/sshd_config 中禁用 root 登录
PermitRootLogin 否
9.requiers 查看是否有任何应用程序或服务因为 root 没有 ssh 访问权限而中断。
如果 9 没有破坏它,你可以完全禁用 root 帐户
sudo 密码-l root
这将为帐户提供一个无法使用的密码,直到设置新密码后才能使用。(需要 sudo,因此在删除任何内容之前要进行测试、测试和测试。)
请原谅我的格式,我是新来的,已经过了我的睡觉时间。
答案2
详细的教程(包括特定于 Digital Ocean 服务器的信息)将指导您完成以下步骤: 使用 Ubuntu 16.04 进行初始服务器设置