我正在尝试创建一个 sshkey 发送给供应商,以便他们可以连接到其 chrooted 监狱文件夹: /home/jail/home/ 文件夹设置和权限均设置为该特定用户,假设“user1”user1:用户1
每当我使用 ssh-keygen 创建密钥时,它总是将 root 用户列为 .pub 底部的 root@system。我不希望供应商以 root 身份连接,而是让他们以 user1 身份连接,这样他们只能访问其 chroot 目录。用户帐户没有登录凭据,因为我只希望他们使用 sshkey 登录,以便他们可以将数据 sftp 到放置文件夹。
我无法在 user1 帐户上创建密钥,因为它的权限非常小,甚至无法运行 ssh-keygen。我尝试的其他所有内容都只需将其设置为 root@system,因为这是我登录的帐户。这必须是一种常见的做法,但我无法弄清楚。我假设我会将这对的 .pub 放入 chrootedauthorized_hosts 文件中,然后安全地向他们发送私钥,用于通过 SFTP 进行连接并放下他们的文件。
如果我尝试使用 sftp -i file 进行 sftp,一切都会正常工作[电子邮件受保护]。不过,我也可以只执行 sftp -i file[电子邮件受保护]它允许我以 root 权限进入那里。我只需要阻止供应商仅使用 root 作为用户名并绕过 chroot。
答案1
文件中实际公钥本身之后的任何内容.pub
实际上只是注释;它通常默认为username@hostname
创建密钥的用户和创建密钥的主机。它可以被完全删除或替换为注释,表明其作为被监禁的单用户密钥的作用:
ssh-rsa [HASH GOES HERE] root@myhost
可能:
ssh-rsa [HASH GOES HERE] Special keypair jailed shell access
这可以在创建时使用开关来完成-C
。引用man ssh-keygen
:
-C comment
Provides a new comment.
因此,如果我这样做ssh-keygen -C "This is a comment"
,公钥将显示为:
ssh-rsa [HASH] This is a comment