Зворотний ssh-тунель у конфіг


16

Як я можу встановити зворотний ssh-тунель за допомогою мого файлу ./ssh/config?

Я намагаюся відтворити цю команду

ssh -R 55555:localhost:22 user@host

в моєму .ssh / config-файлі, так що коли я ввожу, ssh hostя ssh хосту як користувач і з зворотним тунелем. Команди, прийняті конфігураційним файлом, є більш детальними аналогами прапорів командного рядка. Виходячи зі сторінки ssh та manpage для ssh_config, схоже, що відповідним параметром є BindAddress.

У своєму .ssh / config файлі я маю:

Host host
     Hostname host
     User user
     BindAddress 55555:localhost:22

Це, і незначні зміни, призводять до того, що зв’язок відмовився, коли я намагаюся

ssh localhost -p 55555

один раз увійшли на хост. Це добре спрацьовує, якщо явно даю команду вгорі під час першого сшивання хосту. Мій файл конфігурації працює без команди зворотного тунелю; ssh hostзаписує мене до хоста як користувача.

Відповіді:


30

BindAddress- це не той варіант, який ти шукаєш. Від man ssh_config:

BindAddress
         Use the specified address on the local machine as the source
         address of the connection.  Only useful on systems with more than
         one address.

Файл конфігурації еквівалент -RIS RemoteForward:

RemoteForward
         Specifies that a TCP port on the remote machine be forwarded over
         the secure channel to the specified host and port from the local
         machine.  The first argument must be [bind_address:]port and the
         second argument must be host:hostport. [...]

З цією інформацією командний рядок

ssh -R 55555:localhost:22 user@host

перекладається у такий .ssh/configсинтаксис:

Host host
HostName host
User user
RemoteForward 55555 localhost:22
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.