我的问题有两个答案,一个是这里另一个是这里。没有一个人回答我的问题。在这里@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
特权的用户,您需要执行以下操作:
root
从具有权限的用户切换到sudo
:sudo -s
- 创建用户:
useradd user1
和sudo mkhomedir_helper user1
或一次性sudo useradd -m username
创建用户user1
及其主目录。 - 创建
.ssh
文件夹并进入文件夹authorized_keys
内部.ssh
。 - 将文件夹的所有者更改
.ssh
为user1
:chown -R user1:user1 user1/.ssh
- 将文件的模式更改
authorized_keys
为 600:chmod 600 user/.ssh/authorized_keys
- 将与 相关的公钥粘贴到
user1
里面authorized_keys
。 ssh
到服务器:ssh -i {path}\private_key_name user1@machine_ip