PyCharm:通过 SSH 配置多跳远程解释器
Posted
技术标签:
【中文标题】PyCharm:通过 SSH 配置多跳远程解释器【英文标题】:PyCharm: Configuring multi-hop remote Interpreters via SSH 【发布时间】:2016-10-16 02:40:01 【问题描述】:要连接到我办公室的计算机,我需要运行 ssh 两次。首先连接到 host-1,然后从 host-1 连接到 host-2,每个都有不同的凭据。但是 Pycharm 中的配置菜单只接受一个 ssh 隧道。
Configure Remote Python Interpreter dialog box
有没有办法设置多跳 ssh 以从本地访问主机上的解释器和数据文件?
【问题讨论】:
【参考方案1】:您可以在 ssh 上使用端口转发。
1。打开终端并运行:
在您的本地系统上:
ssh -L 6000:<target_server_ip>:22 <proxy_server_user>@<proxy_server_ip>
您现在应该已连接到 代理。您可以将 6000 替换为任何端口。
2。 (可选)测试
现在您可以通过 ssh 进入另一个终端上的 target 服务器:
ssh -p 6000 <target_server_user>@localhost
3。配置 PyCharm
切记不要关闭第一个终端!
PyCharm 也是如此。只需使用以下配置通过 ssh 设置远程解释器连接:
主机:本地主机 端口:6000 用户:target_server_user【讨论】:
我试过了,但出现以下错误:Could not list the contents of "sftp://127.0.0.1:9999/" because it is not a folder
如果从 b 到 c 的连接是通过 ssh 反向隧道建立的呢?
检查 ~/.ssh/known_hosts 并删除任何导致问题的主机
您的解决方案有效。但是,当我在第 2 步中 ssh 进入目标服务器时,它总是需要密码。有没有办法让它无密码?
@ThangM.Pham 您是否尝试将您的公共 ssh rsa 密钥复制到服务器?【参考方案2】:
PyCharm 似乎也解析了本地 .ssh/config。
如果你已经在那里配置了 ssh 跳跃,你可以在你的 pycharm ssh-config 中指定目标服务器。
~/.ssh/config (source)
Host bastion
Hostname bastion.domain.com
Port 2222 # a non-standard port is a good idea
User ironicbadger
Host servera
Hostname servera.lan.local
User servera-user
ProxyCommand ssh bastion -W %h:%p
在pycharm中:
主机servera
,用户名server-user
【讨论】:
如果您已经设置了 ssh 配置文件,此解决方案比公认的答案要好得多。 在this blog post,在“设置 PyCharm” 部分,他们也解释了相同的设置。您还需要做的另一件事是将“身份验证类型”设置为“OpenSSH 配置和身份验证代理”。 有人知道如何在 Windows 上实现这一点吗? @mkohler 这也适用于 Windows (10+)【参考方案3】:对于使用 ssh 版本 7.3 或更高版本的用户,可以使用 ProxyJump
参数简化此操作。
Host bastion
Hostname bastion.domain.com
User bastion-user
Host servera
Hostname servera.lan.local
User servera-user
ProxyJump bastion
【讨论】:
以上是关于PyCharm:通过 SSH 配置多跳远程解释器的主要内容,如果未能解决你的问题,请参考以下文章