Як я можу використовувати SSH як довільний канал через бастіонний хост? [дублікат]


2

Можливий дублікат:
Кілька тунів SSH для стрибків…

Ось налаштування:

робочий стіл : мій робочий стіл. У мене є корінь і я можу робити все, що завгодно. Кубунту 10.04.

bastion : хост бастіону, який дозволяє лише вхідні SSH-з'єднання на порт 22. Я не керую цим сервером. Я не можу записувати файли ніде на цьому сервері. Єдині команди, доступні мені, - це ssh вбудовані оболонки (bash). CentOS.

server : сервер з файлом на ньому, який я хочу отримати (тобто скопіювати на робочий стіл ). Дозволяє лише вхідні SSH-з'єднання з бастіону . Не дозволяє вихідні ssh-з'єднання. CentOS.

Я можу ssh з робочого столу на бастіон , а потім ssh з бастіону на сервер . Я можу встановити тунель SSH на B таким чином:

ssh -fNL 30000:localhost:22 server

І тоді наступне дозволяє мені підключитися до сервера з бастіону :

bastion % ssh localhost -p 30000

Але це не працює ( бастіон відмовляється від з'єднання):

desktop % ssh bastion -p 30000

Мені цікаво, чи є якимось чином я можу перетворити сеанс ssh з робочого столу на бастіон в тунель, який підключається до порту 30000 локально на бастіоні , щоб потім я міг пройти це з'єднання, щоб дістатися до сервера . Якщо бастіон дозволив вхідні з'єднання на високих портах, я міг би це зробити, але це не так, тільки порт 22.

Я знаю, що є й інші варіанти: я можу занести цільовий файл на мій екран і зберегти його локально, але це злом (і дратує, якщо у файлі є бінарні дані).

EDIT: Я вирішив одне дурне рішення:

bastion % ssh server "cat filename1" | ssh localhost "cat > filename2"

Це працює, хоча ssh-підказки (ви впевнені, що хочете підключитися, так / ні? Та пароль) отримують один за одним, тому вам доведеться вводити "так" та різні паролі хоста у правильному порядку). Але було б добре, якби я міг пройти через сервер з робочого столу .

Відповіді:


1

Спочатку підключіться до бастіону і налаштуйте тунель з desktop->bastion
ssh -L 30000:localhost:30000 bastion

Тепер налаштуйте тунель з bastion-> server, запустивши це даліbastion
ssh -L 30000:localhost:22 server

Тепер ви можете sftp server:30000:/path/to/the/file/you/want.txtперетягнути файл у поточний каталог.

Перші дві команди можна спростити, просто запустившись
ssh -L 30000:localhost:30000 bastion ssh -L 30000:localhost:22 server
з робочого столу, я думаю .

Редагувати :

Спробуйте ssh -L 30000:server:22 bastion


Перша команда не працює; Бастіон не прийме вхідний SSH-запит на порт 30000.
грунт

Я просто щось придумав, подивіться свої модифіковані команди.
Дарт Android
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.