控制台中添加的 GCP SSH 密钥可为 sudo 用户提供访问权限,我们如何避免这种情况?

控制台中添加的 GCP SSH 密钥可为 sudo 用户提供访问权限,我们如何避免这种情况?

我的问题有两个答案,一个是这里另一个是这里。没有一个人回答我的问题。在这里@John Hanley 建议我添加一个用户并手动输入公钥,.ssh/authorized_keys这是我想要的方法,因为我想添加用户并向他们发送私钥,以便他们可以通过 ssh 连接到服务器并完成他们的工作。但是当我使用此方法并尝试ssh使用这个新用户时,我得到了Permission denied (publickey)

以下是我的问题:

我为三个用户创建了 3 个ssh密钥对,他们可以ssh访问 GCP 上我的一个项目中的虚拟机。这些密钥已通过控制台添加到虚拟机。问题是所有这些用户都具有 sudo 访问权限,因为当我执行以下操作时,它会告诉他们拥有他们想要的所有访问权限:

sudo -l -U user

Matching Defaults entries for user on project:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User user may run the following commands on project:
    (ALL : ALL) NOPASSWD: ALL

我如何才能将他们的访问权限限制为普通用户?或者我如何从一开始就避免这个问题。

这就是我创建钥匙的方式:

ssh-keygen -t rsa -b 4096 -f {path}\{key-name} -C {user-name}

然后,我复制了公钥并添加到ssh keys控制台中。

答案1

当您将生成的公钥放在 GCP 控制台上时,您将创建一个添加到 的用户google-sudoers。您可以通过 来查看它$cat /etc/group。如果您想雇用承包商或创建没有sudo特权的用户,您需要执行以下操作:

  1. root从具有权限的用户切换到sudosudo -s
  2. 创建用户:useradd user1sudo mkhomedir_helper user1或一次性sudo useradd -m username创建用户user1及其主目录。
  3. 创建.ssh文件夹并进入文件夹authorized_keys内部.ssh
  4. 将文件夹的所有者更改.sshuser1chown -R user1:user1 user1/.ssh
  5. 将文件的模式更改authorized_keys为 600:chmod 600 user/.ssh/authorized_keys
  6. 将与 相关的公钥粘贴到user1里面authorized_keys
  7. ssh到服务器:ssh -i {path}\private_key_name user1@machine_ip

相关内容