我能够将 WinSCP 会话连接到 Google Cloud Project 的 Compute Engine 实例,但只能以用户身份(来自 sudoer 组)进行操作。这不允许我更改任何文件。
而且通过 PuTTY 终端,我只能先以普通用户身份连接,然后每次连接时,我都必须输入 sudo -i 命令以更改为 root 用户。如果我尝试直接以 root 用户身份连接,则会收到“权限被拒绝”错误消息。
在这两种情况下,有没有办法以 root 身份连接?(WinSCP 中的 root 非常必要,因为以后无法更改为 root 身份)。
答案1
不建议启用 root 用户。
我建议创建一个防火墙(安全组)规则,只允许从您的公共 IP 地址或 CIDR 块访问端口 22。
要启用 root 用户,您需要修改 SSHD 配置。确切的文件和功能取决于操作系统。
对于大多数 Linux 系统:
- 编辑
/etc/ssh/sshd_config
- 将此行更改为
PermitRootLogin yes
或PermitRootLogin without-password
或PermitRootLogin prohibit-password
。具体使用哪个取决于您的设置(用户名/密码或仅 SSH 密钥对)、操作系统和版本。 - 重新启动 SSH:
service ssh reload
这些更改必须以 root 身份或 sudo 每个命令执行。这些更改仅影响新连接。
注意:在进行更改之前,请确保您有系统的备份(快照或映像)。弄乱 SSH 会导致您的系统访问权限消失。
上述更改允许 root 用户登录。它们没有指定登录方法。最简单的方法是将存储在该系统帐户中的公钥复制到 root 用户:
mkdir /root/.ssh
cp /home/myusername/.ssh/ /root/.ssh/
现在您可以使用与用户名相同的私钥登录root
。
我建议为 root 用户创建一个新的密钥对。