Відповіді:
Впевнений; просто використовуйте пересилання / тунелювання портів 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 до вашої локальної машини на порту, який пересилається до $REMOTEHOST
SSH-порту.
Якщо ви готові оновити конфігурацію свого клієнта, ви можете налаштувати свого клієнта, щоб він використовував ваш шлюз як проксі . У вашому релейному вікні буде потрібно встановити мережу 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
З представлених відповідей найкращим загальним рішенням є Zordache's. Однак для нащадків, якщо ви просто хочете підключити ad-hoc без редагування вашої конфігурації, використовуйте -t
прапор, щоб виділити псевдотермінал разом із виконанням ssh безпосередньо на реле.
ssh -t relay.example.com ssh internal.example.com
Ви можете пересилати з'єднання автоматично, використовуючи OpenSSH. У своєму ~/.ssh/authorized_keys
файлі ви можете вказати команду для виконання, яка може бути SSH для другої машини.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
У кінцевому підсумку ви побачите два підказки Password:
: один для ретрансляційного сервера і один для цільового сервера. Ви завжди можете видалити цю поведінку за допомогою сертифікатів.