Реле-сервер SSH з OpenSSH


10

Чи можливо використовувати OpenSSH для ретрансляції на інші пристрої з підтримкою SSH, такі як комутатори маршрутизаторів і т. Д. Якщо це щось, що можна зробити, не створюючи замовлення на Linux, щоб зробити це?

Дякую

Відповіді:


9

Впевнений; просто використовуйте пересилання / тунелювання портів SSH. Запустити ssh-з'єднання з машиною "проксі" за допомогою наступної команди:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST: машина, до якої ви маєте доступ до SSH
  • $REMOTEHOST: машина, до якої може підключитися $ PROXYHOST, але ви не можете. Використовуйте ім'я хоста або IP, які $PROXYHOSTможуть використовуватись для позначення машини
  • $SSHPORT: порт, який sshd слухає на віддаленому хості; швидше за все, 22
  • $LOCALPORT: на локальній машині відкривається локальний вихідний порт SSH, який пересилає на порт 22 на $REMOTEHOST

Залиште це з'єднання, щоб тунель працював. Ви можете також додати -Nдо команди, щоб це з'єднання не виводило віддалену оболонку, і ви не випадково закриєте її пізніше.

Після встановлення тунелю зробіть наступне:

ssh -p $LOCALPORT localhost

Це намагається підключити SSH до вашої локальної машини на порту, який пересилається до $REMOTEHOSTSSH-порту.


3

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

Ось що я використовую у своєму .ssh / config для з'єднання через інший хост.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

З вищезазначеним ви можете просто запустити команду ssh Internal-ssh-host-proxy з вашої клієнтської машини.

Якщо проксі-сервером SSH є клієнт OpenSSH 5.4 або вище, вам не потрібна netcat, і замість цього ви можете використовувати вбудований режим netcat.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

Вибачте, але це не використання OpenSSH, який ви використовуєте netcat для передачі реле між клієнтським сервером і сервером?
aHunter

Він використовує OpenSSH у поєднанні з дуже поширеною утилітою, яка доступна майже скрізь. Це не чистий ssh, але я б не назвав це замовленим.
Зоредаче

Ні, я згоден, це не замовчується, але я хотів дізнатися, чи можна ретрансляцію за допомогою OpenSSH, щоб ви використовували стандартний ssh-клієнт і ssh до вікна, на якому працює OpenSSH, який автоматично надає ssh доступ до іншої машини чи декількох машин. Дякую
aHunter

1
@aHunter, для запису тепер є вбудований режим netcat у openssh 5.4, який пропонує чисте відкрите з'єднання - blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode немає зовнішніх інструментів потрібні.
Зоредаче

3

З представлених відповідей найкращим загальним рішенням є Zordache's. Однак для нащадків, якщо ви просто хочете підключити ad-hoc без редагування вашої конфігурації, використовуйте -tпрапор, щоб виділити псевдотермінал разом із виконанням ssh безпосередньо на реле.

ssh -t relay.example.com ssh internal.example.com

найпростіше рішення без редагування файлів
Kartoch

2

Ви можете пересилати з'єднання автоматично, використовуючи OpenSSH. У своєму ~/.ssh/authorized_keysфайлі ви можете вказати команду для виконання, яка може бути SSH для другої машини.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

У кінцевому підсумку ви побачите два підказки Password:: один для ретрансляційного сервера і один для цільового сервера. Ви завжди можете видалити цю поведінку за допомогою сертифікатів.


це звучить ідеально, як би ви налаштували sshd у openssh?
aHunter

Дивіться розділ [Примусові команди] [1] за адресою [1] eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

це дивовижна ідея. Останнє, що я хочу зробити, - це відкрити 100 дискретних портів у моєму брандмауері з маршрутами. Потім повторіть для надмірності. Це говорить про те, що я можу створити 100 ssh-ключів і підключити кожного до свого власного сервера. Це також говорить про те, що я можу повністю заблокувати ретрансляційний сервер. Дехто може назвати це VPN, але я бачу це інакше.
Річард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.