2015-12-28 2 views
-1

Я действительно царапаю голову об этом.создать переадресацию порта через ssh-tunnel в .ssh/config

Я нашел это отличное руководство для port-forwarding via multiple ssh-hops.

Folowing это руководство, я попытался это:

Это работает:

$ ssh -t hop -L 9080:localhost:9080 \ 
> ssh -A -t [email protected] -L 9080:localhost:9080 

с .ssh/конфигурации

Host hop 
    User extUser 
    IdentityFile ~/.ssh/id_rsa.company.pub 
    Hostname company.com 
    ForwardAgent yes 
    Port 11000 

Это действительно открывает порт на моей машине с помощью хмеля на 100 целевого аппарата на порту 9080.

У сервера hop имеется доступ к 192.168.1.100:9 080 (т.е. wget 192.168.1.100:9080 успешно)

Так в соответствии с руководством, это должно работать, а также:

ssh -L 9080:192.168.1.100:9080 hop 

Но это не так. Он откроет соединение с точкой перехода ssh (-f -N), чтобы предотвратить это), но туннель не перенаправлен в пункт назначения. Что мне не хватает?

Конечно, наконец, это должно быть все в .ssh/конфигурации:

Host tunneled-9080 
    User extUser 
    IdentityFile ~/.ssh/id_rsa.company.pub 
    Hostname company.com 
    ForwardAgent yes 
    Port 11000 
    LocalForward 9080 192.168.1.100:9080 

так просто

ssh -f -N tunneled-9080 

все, что мне нужно.

Что мне не хватает?

+0

Ваш вопрос [вне темы] (http://stackoverflow.com/help/on-topic) здесь. –

+0

Итак, где бы это было по теме, @Martin? – Jan

+0

@MartinPrikryl: Может ли кто-то переместить это на http://serverfault.com? – Jan

ответ

0

Просто для записи, если кто-то приходит к этому вопросу.

Все вышеописанное и работает. То, что меня обмануло, было моим чересчур умным браузером, который через какое-то время преобразовал localhost:9080 в www.localhost.com:9080, который, конечно же, ужасно сработал. тесто

Stupid умный светлячок

0

Первая команда (в сочетании с ssh config) регистрирует в качестве имени пользователя hopextUser и оттуда входа в 100 машины, как пользователь user.

Пока вторая команда пытается войти в обе машины как пользователь extUser. Вероятно, это почему-то не удается - потому что пользователь extUser не имеет настройки доступа на машине 100.

+0

Фактически вторая команда не входит в систему на 100 машин вообще. Он просто направляет конец туннеля на 100: 9080. Так что да, он пропускает один ssh-логин. Что должно работать нормально, так как 192.168.1.100:9080 видно из моей машины. ? – Jan

+0

Что я имел в виду, так это то, что он пытается попасть в машину '100' как пользователь' extUser', потому что это происходит, когда вы не укажете пользователя в командной строке или в конфигурации - он использует текущего пользователя. Попробуйте передать опцию '-v' для обеих команд' ssh' в первой команде, чтобы увидеть, что она действительно делает. – Ziffusion

+0

О, и, нет, это не «пропуская» второй логин. Это * * пытается попасть в машину '100' как' extUser'. Он попытается найти разрешенные ключи для 'extUser' на' 100'. – Ziffusion

Смежные вопросы