Настройка доступа по ssh через Jump Box и pbrun

/proc/net является символической ссылкой на /proc/self/net, поэтому /proc/netи /proc/[pid]/netотличаются только тогда, когда процесс [pid]и процесс, который исследует /proc/net, находятся в разных сетевых пространствах имен .

Если вы хотите получить список всех сокетов, вам придется просмотреть все пространства имен; для двух процессов, находящихся в одном и том же сетевом пространстве имен, их /proc/PID/ns/netбудет иметь одинаковый номер инода. Таким образом, вы можете перечислить все различные сетевые пространства имен в вашей системе.

2
08.11.2020, 17:05
2 ответа

Две конфигурации, которые я считаю работающими::

dk@local $ cat ~/.ssh/config
Host behindProxy
     HostName gateway
     LocalCommand pbrun -u sysuser -h remote bash
     PermitLocalCommand yes

dk@local $ ssh behindProxy
dk@gateway's password:
sysuser@remote's password:

sysuser@remote $ 

Однако на самом деле соединение происходит не от шлюза:

sysuser@remote $ last -1 -w
dk pts/18       local.domain.com Sun Nov  8 22:03   still logged in

В качестве альтернативы:

dk@local $ cat ~/.ssh/config
Host behindProxy2
     HostName gateway
     RemoteCommand pbrun -u sysuser -h remote bash

dk@local $ ssh -t behindProxy2
dk@gateway's password:
sysuser@remote's password:

sysuser@remote $ 

Доказательство того, что соединение действительно происходит через шлюз:

sysuser@remote $ last -1 -w
dk pts/18       gateway.domain.com Sun Nov  8 22:06 still logged in

Обратите внимание, что здесь необходима опция -t, иначе возникает ошибка:

dk@local $ ssh behindProxy2
dk@gateway's password:
sysuser@remote's password: pbrun8.5.1-01[20295]: 3346: TTY is no longer available

Можно не указывать -t, указавRequestTTY force:

dk@local $ cat ~/.ssh/config
Host behindProxy2
     HostName gateway
     RequestTTY force
     RemoteCommand pbrun -u sysuser -h remote bash

dk@local $ ssh behindProxy2
dk@gateway's password:
sysuser@remote's password:

sysuser@remote $ 
1
18.03.2021, 22:51

Простым способом может быть использование ssh JumpHosts, вы можете использовать ключи ssh, чтобы не вводить пароль дважды:

ssh -J <username>@<gateway_host>:<port> <username>@<remote_host>:<port>

С момента последнего редактирования:

Во-первых, вы не можете одновременно использовать и ProxyJump, и ProxyCommand, поскольку ProxyJump является сокращением для ProxyCommand с ssh и некоторыми параметрами.

Лучше использовать ssh напрямую с директивой ProxyCommand:

Host behindProxy 
    HostName gateway 
    ProxyCommand ssh -W %h:%p sysuser@remote 'bash'

Другим способом может быть использование RemoteCommand с использованием pbrun , как предложено в разделе комментариев.

1
18.03.2021, 22:51

Теги

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