如何调试未在特定端口上连接的 ssh?

如何调试未在特定端口上连接的 ssh?

我正在尝试使用 ssh 连接到远程机器上运行的 docker,其中 docker 将其自己的端口 22 公开为该远程机器上的端口 2222。

docker run -ti --hostname my_docker --name my_docker\
    -p 2222:22 --rm debian bash -c "
        apt update -y;apt install -y openssh-server; service ssh start;
        useradd pi; mkdir -p /home/pi; chown pi /home/pi;
        passwd pi <<< \$'password\npassword'; exec bash"

或者

docker run -ti --hostname my_docker --name my_docker\
    -p 0.0.0.0:2222:22 --rm debian bash -c "
        apt update -y;apt install -y openssh-server; service ssh start;
        useradd pi; mkdir -p /home/pi; chown pi /home/pi;
        passwd pi <<< \$'password\npassword'; exec bash"

我可以连接从远程机器本身到其自身使用ssh -p 2222 pi@<remote_machine_ip>

但当尝试使用相同的方式从同一域上的另一台计算机进行连接时ssh -p 2222 pi@<remote_machine_ip>,我得到了

ssh:连接到主机 <<remote_machine_ip>> 端口 2222:连接超时


我只是假设问题是端口 2222 没有暴露给本地主机以外的主机。

  1. 如何调试?
  2. 如何ssh -p 2222 pi@<remote_machine_ip>从另一台机器上进行工作?

相关内容