Как фильтровать по столбцу

Во-первых, с вашими настройками, что будет работать, в любом случае потребуется два ssh:

Host foo
    LocalForward 10022:bar:22

Host bar
    Hostname localhost
    Port 10022
    LocalForward 33389 rdp:3389

term1$ ssh foo # or use ssh -f -N -o ExitOnForwardFailure=yes foo for background task
term2$ ssh bar

Что вам действительно нужно, так это не RemoteCommand, а ProxyJump, действительно упрощающий вашу конфигурацию, с целью достижения только с:

ssh -L 33389:rdp:3389 -J foo bar

Или эквивалент (только )конфигурация:

Host bar
    ProxyJump foo
    LocalForward 33389 rdp:3389

Без промежуточного порта.

К сожалению, ProxyJump доступен только начиная с openssh 7.3

Но его легко заменить комбинацией ProxyCommand/ -W, которую вы использовали раньше.

ssh -L 33389:rdp:3389 -o 'ProxyCommand=ssh foo -W %h:%p' bar 

или как файл конфигурации:

Host bar
    ProxyCommand ssh -W %h:%p foo
    LocalForward 33389 rdp:3389

По-прежнему работают два ssh :скрытый — это тот, который с параметром ProxyCommandвсе еще работает на локальном хосте, выполняющем соединение с использованием пары каналов с основным ssh вместо дополнительного порта tcp. Попытка привлечь промежуточный хост к участию в переадресации портов небезопасна или может привести к конфликту (, другие пользователи foo могут получить доступ к туннелю или использовать тот же порт )и подвержены ошибкам. Концы туннеля должны всегда оставаться на клиентском хосте, если это возможно, где есть полный контроль. Промежуточные туннели должны либо не существовать, либо указывать на следующую точку входа ssh (, которая используется здесь -W).

-2
30.03.2020, 05:08
1 ответ

Сценарии Awk состоят из пар шаблонов и действий , которые выполняются, когда шаблон оценивается как логическая истина. Таким образом, вы можете использовать

... | awk '$7==2 {print}'

или короче, потому что {print}— это действие по умолчанию

... | awk '$7==2'
4
19.03.2021, 02:31

Теги

Похожие вопросы