如何使用autossh 保持ssh映射不断开
时间: 2023-10-30 20:35:34 浏览: 208
可以使用以下命令使用autossh来保持ssh映射不断开:
autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -i [私钥文件路径] -R [远程主机的监听端口号]:localhost:[本地主机的监听端口号] [远程主机用户名]@[远程主机IP地址]
相关问题
autossh 的用法示例
autossh 是一个用于在不可靠的网络上建立安全的 SSH 连接的工具,它可以在连接中断时自动重连,以确保连接的持久性。
以下是一个典型的 autossh 命令示例:
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -R 8080:localhost:80 user@remote-server
此命令将在远程服务器上建立一个 SSH 反向隧道,将本地主机的 8080 端口映射到远程服务器的 80 端口上。
-M 参数指定用于监控 SSH 连接的端口,值为 0 表示禁用此功能;-o 参数用于设置 SSH 客户端选项,此处设置断开检测间隔为 30 秒,最大重试次数为 3;-N 参数指定不执行远程命令;-R 参数指定反向隧道的配置信息,格式为 remote-port:local-host:local-port,其中 remote-port 是远程服务器的端口,local-host 是本地主机名或 IP 地址,local-port 是本地端口号。
当这个 SSH 连接意外中断时,autossh 会自动尝试重新连接,以确保连接的可靠性。
pycharm ssh反向隧道
### 配置PyCharm通过SSH反向隧道进行远程开发与调试
为了使PyCharm能够通过SSH反向隧道连接到内网中的目标主机并支持远程开发和调试,需先建立稳定的SSH反向隧道。由于普通的SSH连接可能因网络波动而中断,推荐使用`autossh`来保持隧道的持续可用性[^1]。
#### 创建持久化的SSH反向隧道
假设外部机器拥有公网IP地址`public_ip`,内部网络的目标服务器具有私有IP`private_ip`,并且希望将本地8080端口映射至远端同一端口,则可以通过如下命令启动一个反向隧道:
```bash
autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" \
-R public_ip:8080:localhost:8080 user@middle_server_ip
```
上述指令中,选项解释如下:
- `-M 0`: 关闭监控端口,默认情况下`autossh`会开启额外端口用于检测连接状态;这里关闭此功能以简化配置。
- `ServerAliveInterval` 和 `ServerAliveCountMax`: 设置心跳包机制防止闲置超时断开。
- `-R`: 表明这是一个反向隧道操作,格式遵循`[bind_address:]port:host:hostport`模式[^3]。
当这条命令被执行后,即使遇到短暂性的网络不稳定情况,`autossh`也会尝试重新建立丢失的链接,从而确保长期可靠的通信通道存在。
#### 在PyCharm里配置远程解释器及部署上传文件
完成SSH反向隧道搭建之后,在PyCharm内的具体设置步骤为:
1. 打开项目结构对话框(File -> Settings/Preferences...),导航到“Build, Execution, Deployment”下的“Deployment”。
2. 添加新的SFTP服务器条目,指定之前创建好的SSH连接详情,包括用户名、密码以及对应的公钥认证方式等信息。
3. 对于远程Python解释器的选择,进入“Project Interpreter”,点击齿轮图标选择“Add Remote...”。按照提示输入必要的SSH登录凭证,并指向已安装在远程环境里的Python版本路径。
4. 完成以上设定以后,即可利用PyCharm内置的功能轻松管理源码同步、执行脚本乃至调用GDB/PDB来进行交互式的程序调试工作了。
这样就实现了借助SSH反向隧道让位于防火墙后的计算资源对外提供服务的同时保障安全性[^2]。
阅读全文
相关推荐












