小编Pra*_*obo的帖子

以不存在/虚拟用户身份运行 ssh

有没有办法ssh以启动 ssh 连接的主机上不存在的用户身份运行?

假设我有一个远程主机,并设置了帐户并运行 sshd。我可以使用 ssh 进入该机器ssh remote-user@remote-host。如果我有设置密钥,ssh 将使用它,如果没有密钥起作用,它会提示我输入密码。假设启用了密码身份验证。

假设我有一个名为docker-imagessh 的 Docker 映像,并安装了其他所需的软件。我可以毫无问题地启动容器和 ssh。请注意,root 用户存在。

hostname$ docker run -it --rm docker-image bash
container-id$ whoami
root
container-id$ ssh remote-user@remote-host
remote-user@remote-host's password: 
Run Code Online (Sandbox Code Playgroud)

如果我使用映像中不存在的用户启动容器,则无法使用 ssh 连接到远程主机。

hostname$ docker run -it --rm -u 1234:100 docker-image bash
container-id$ whoami
whoami: cannot find name for user ID 1234
container-id$ ssh remote-user@remote-host
No user exists for uid 1234
container-id$ echo $?
255
Run Code Online (Sandbox Code Playgroud)

错误来自ssh.c

    /* Get user data. */
    pw …
Run Code Online (Sandbox Code Playgroud)

ssh openssh

5
推荐指数
1
解决办法
2377
查看次数

标签 统计

openssh ×1

ssh ×1