有没有办法编辑 ssh 配置以回显每个主机名的自定义文本?

有没有办法编辑 ssh 配置以回显每个主机名的自定义文本?

我有一个包含多个主机的 ssh 配置文件,每个主机都预先配置了一些端口转发

Host host
  HostName host.server.com
  User user
  LocalForward 1234 localhost:9911
  LocalForward 5678 localhost:9922

有没有一种简单的方法来显示类似的文本

Service 1 (port: 9911) forwarded to port: 1234
Service 2 (port: 9922) forwarded to port: 5678

登录时?

答案1

awk解决方案:

awk '/LocalForward/ 
{ count++;
  split($3,arr,":");
  printf "Service %i ( port: "arr[2]") forwarded to port : "$2"\n",count 
}' ssh_config

任何 LocalForward 行的模式匹配,然后增加变量计数。使用 分割行上的第三个空格分隔字段:将结果放入数组 (arr) 中。打印提取 arr 数组中第二个元素所需的文本以及该行上第二个空格分隔的数据段。

相关内容