我在一个远程集群上工作,在那里我可以直接访问一个管理器节点,该管理器节点使用 Slurm 将我重定向到计算节点。
在其中一个计算节点上,我有一个正在运行的 Docker 容器,我想设置 Pycharm 以使用容器内的 Python 解释器 ssh 从我的本地计算机进入该容器。所以,情况是这样的:
PyCharm
^
local_machine --> manager_node --> compute_node
|
V
docker_container
在本地机器上,我有一个 ~/.ssh/config 文件:
Host manager_node
HostName manager_node_address
User my_user
IdentityFile ~/.ssh/id_rsa
Host compute_node
HostName compute_node_address
User my_user
ProxyJump manager_node
IdentityFile ~/.ssh/id_rsa
Host docker_container_00
HostName container_ip_address
User root
ProxyJump compute_node
IdentityFile ~/.ssh/id_rsa
Host docker_container_01
HostName container_ip_address
User root
ProxyCommand ssh -W %h:%p my_username_on_compute_node@compute_node_address -i ~/.ssh/id_rsa
我可以使用 2 个选项中的任何一个从我的本地机器 ssh 到 docker 容器:
ssh docker_container_00
ssh docker_container_01
我被要求输入密码(我在用于创建容器的 Dockerfile 中配置了 Docker root 密码),我在容器中。
现在我正在尝试配置 Pycharm 来做同样的事情。我添加了一个新的解释器并使用了相同的设置,但是我得到了一个错误: