ssh - ssh -F配置文件和ProxyCommand

标签 ssh

我想使用ssh_config文件而不是传统的〜/ .ssh / config。我有一个简单的配置,可以通过堡垒主机(例如,端口23)访问主机。

ssh_config:

host bastion
    hostname bastion.mydomain.com
    port 23

host *.server
    proxycommand ssh -W %h:%p bastion
ssh -F ssh_config test.server无法正常工作,并向我抛出“ssh:无法解析主机名堡垒:名称或服务未知”。

但是,如果将此配置放在〜/ .ssh / config中,则ssh test.server有效。

据我了解,proxycommand无法使用命令行中给出的配置文件。
如果我想让我的命令行配置文件正常工作,我需要输入
    proxycommand ssh -W %h:%p bastion.mydomain.com -p 23

但这似乎违反了简单的DRY原理(重复了端口和域)。我愿意构建的配置文件更长而又复杂。

是否有一种很好的方法来实现我想要的功能,即一个简单的,非重复的,可在命令行中使用的配置文件(proxycommand适用于该配置文件)?

最佳答案

答案的一半:
不要尝试递归地使用配置文件,而应完全不依赖Proxy命令的配置。
host *.server proxycommand ssh -W %h:%p bastion.mydomain.com -p 23
这样可以使其具有可移植性,但不能解决在每一行都必须执行此操作的其他问题,并且使更改堡垒主机地址成为一个困难的过程。

关于ssh - ssh -F配置文件和ProxyCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304804/

相关文章:

ssh - Google Cloud Platform中的SSH连接有问题

Java Eclipse 程序每周自动运行

postgresql - 通过 Unix 套接字将 DBeaver 连接到远程 PostgreSQL DB

ssh - 如何将目录从本地机器复制到远程机器

powershell - 使用 Plink 将 .NET 构建文件夹的内容复制到 Ubuntu 服务器

node.js - 如何使用 pm2 部署到 Windows 堆栈

ssh - "Could not resolve hostname"Ansible

c# - 连接到 OpenShift (Redhat Paas) mysql 实例

ssh - 如何在远程系统上修改sshd_config的MaxStartups字段?

php - 如何通过 SSH 隧道将 PHP/Codeigniter 应用程序连接到远程 MySQL 数据库?