从包装脚本中的 SSH 参数获取主机名

从包装脚本中的 SSH 参数获取主机名

我正在为 SSH 开发一个简单的包装脚本,以便在实际执行 SSH 之前进行一些预处理(确切地说:使用 keychain/ssh-agent 加载每个主机的密钥)。

为了做到这一点,我需要从命令行参数中提取主机名。包装器应支持 SSH 接受的所有选项 — 因此,如果用户打算在远程端以非交互方式运行命令,那么我使用最后一个命令行参数的第一个简单方法将不起作用。

有谁见过一种简单的、仅使用 shell 的、可靠地获取主机名的方法吗?

提前致谢!

答案1

只需使用ssh -G

ssh -G -nNT -L10000:localhost:10000 admin@yo|grep "^hostname"|awk '{print $2}'

将打印yo。如果您的 中有匹配项,它将完全解析为真实主机名.ssh/config

相关内容