Я пытаюсь выяснить, как s sh перейти к хосту за хостом бастиона, где соединение представляет собой сокет unix.
Хост A
подключается к бастиону через s sh и устанавливает обратный туннель обратно к своему sshd
:
ssh -R /var/run/A.sock:localhost:22 bastion
Вкл. bastion
Я могу подключиться к A
со следующими значениями s sh config
Host A
ProxyCommand socat - UNIX-CLIENT:/var/run/A.sock
Теперь я хотел бы подключиться от B
к A
через bastion
, например,
ssh -J bastion A
Мне особенно интересно подключиться к хосту за A
, например:
ssh -L 80:1.2.3.4:80 -J bastion A
Это не похоже на работу, поскольку s sh не оценивает ~/.ssh/config
на bastion
и A
не является допустимым именем хоста.
Следующий подход работает, но имеет Недостаток создания двух туннелей и временного порта
ssh -tt bastion ssh -tt A
ssh -L 80:localhost:8000 -tt bastion ssh -L 8000:1.2.3.4:80 -tt A
У кого-нибудь есть лучший подход? Как мне настроить это в ~/.ssh/config
?
Обновление 1
Следующая конфигурация s sh на B
, кажется, работает:
Host A
HostName bastion
RequestTTY force
ForwardAgent yes
RemoteCommand ssh -tt A
Однако, ssh -L 80:1.2.3.4:80 A
не устанавливает sh сквозной туннель с этой конфигурацией.