如何通过~/.ssh/config配置自动运行Expect脚本实现SSH透明连接
实现方案
完全可以通过~/.ssh/config配置实现,不需要创建SSH别名或额外的主机检测脚本,核心是利用ProxyCommand选项让SSH自动调用你的Expect脚本。
- 编辑本地的
~/.ssh/config文件,添加针对目标主机的配置块:
Host 你的目标主机名 ProxyCommand /path/to/your/expect-script.sh %h %p
其中%h会自动替换为你要连接的主机名,%p会替换为SSH端口(默认22)。如果你的Expect脚本已经硬编码了目标主机和端口,也可以省略参数,直接写:
Host 你的目标主机名 ProxyCommand /path/to/your/expect-script.sh
- 确保你的Expect脚本拥有可执行权限:
chmod +x /path/to/your/expect-script.sh
需要注意的细节:
- 如果脚本需要适配不同主机,要在脚本逻辑中正确接收并使用
%h和%p这两个参数,替换掉硬编码的主机和端口信息。 - 确认你的Expect脚本最终会进入远程主机的交互式shell,避免执行完成后直接退出,无法保持会话。
内容的提问来源于stack exchange,提问作者A.Z.
相关产品推荐
相关产品推荐

