SSH через проксі-сервер SOCKS? (клієнт = OpenSSH OS X)


11

Я не впевнений, що це питання найкраще підходить тут на ServerFault чи більше на SuperUser. Думаючи про це логічно, я вважаю, що це питання щодо систематизму, тому я ставлю його сюди, і якщо модники думають, що він повинен рухатись, то вибачтесь за те, що гадати неправильно!

Так чи інакше - у мене сервер поза сайтом, і я застряг у приватному IP-адресі, не має доступу до мережі, за винятком протоколу HTTP або проксі-сервера SOCKS 4/5. Я запускаю OS X, і я хотів би, щоб команда ssh з терміналу якось працювала через один з цих двох проксі, щоб вийти на віддалений сервер. Порт SSH на віддаленому сервері є нестандартним, хоча я сумніваюся, що це матиме велике значення.

Відповіді:


5

Я знаю, що це стародавній пост, але я думаю, що ця відповідь все одно буде корисною:

Ви можете дуже легко зробити це через проксі-сервер SOCKS з NetCat (nc). У ваш ~ / .ssh / config ви просто додаєте два рядки, один, який визначає, які хости ви хочете проксі, і рядок, щоб вказати, як підключитися через nc. Так:

~ / .ssh / config: (тестується на OSX, також повинен працювати і в Linux)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

Замініть "PROXY_HOST" на потрібну для вашого налаштування.

Це змушує ssh, замість того, щоб безпосередньо відкривати TCP-з'єднання з цільовим хостом (у цьому випадку все, що починається з "10." - це може бути IP або ім'я хоста), запустити команду "nc" із заданими параметрами, щоб насправді встановити TCP-з'єднання, а SSH зробить решту звідти. Дуже зручно.

"5" - версія SOCKS, "1080" - проксі-порт, "% h" SSH замінюється хостом, який ви ввели в командному рядку, а "% p" SSH замінює портом з командного рядка (або за замовчуванням 22).


7

Так, це можна зробити. Дивіться цей приклад на одному прикладі.

В основному ви використовуєте локальну програму ~/.ssh/configflle (або, /etc/ssh/ssh_configякщо вам потрібно, щоб вона була загальносистемною), щоб вказати ProxyCommandдирективу для хостів, до якої потрібно пройти проксі.

Ви також можете використовувати nc(що постачається з OS X) замість програмного забезпечення, яке вони згадують на цьому сайті.

Для отримання додаткової інформації див. Сторінки ssh_config(5)та nc(1)man.


1
На жаль, сторінка, на яку ви посилаєтесь, застаріла, а посилання на виправлену версію бінарного файлу мертва - помилка 404.
Барт Б

1
О, як це бентежно - я знайшов посилання на працюючу команду проксі, яка все ще компілюється в OS X 10.7 Lion, і досі працює, НА МОЄМО ВЛАСНІЙ БЛОГ! На мій захист посаді 6 років, але все ж. Інструкції тут: bartbusschots.ie/blog/?p=184
Bart B

2
@BartB "Все, що ви писали більше тижня тому, можливо, написало ще хтось." - Це аксіома програмування, але вона справедлива і для сисадмінів та блогерів.
voretaq7

3

Трохи пізно, але зауважте, що ви можете використовувати інші відповіді тут у самій команді SSH із прапорцем -o. Це було корисно для мене, оскільки я можу або не потребуватиму використання проксі (залежно від того, в якому офісі я перебуваю), тому я не хочу дуже редагувати свої конфігураційні файли ssh.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.