4

Машины:

  • Давайте назовем мою машину MacBook.
  • У меня есть сервер на веб-сайтах. Назовите это сервером.
  • У меня есть Mac Mini, к которому я могу получить доступ через общий доступ к экрану iChat. Давайте назовем это мини.

достижимости:

  • Сервер не видит ни MacBook, ни Mini.
  • MacBook может видеть сервер, но не мини.
  • Мини может видеть сервер, но не MacBook.

Совместное использование экрана идет медленно. Я хочу SSH соединение с мини. Прямое соединение невозможно из-за роутеров, NAT и т.д.

Я хочу подключить macbook и mini к серверу через SSH, создавая соответствующие туннели, чтобы из macbook я мог запустить команду ssh … для подключения к mini путем туннелирования соединения через сервер.

Итак, мой вопрос: какие команды мне нужно выполнить, на каких машинах, чтобы это работало?

Для простоты, пожалуйста, используйте server, mini, macbook в качестве имен хостов в ваших ответах.

3 ответа3

6

Нужен только один ssh-туннель. Из мини:

ssh -N -R 0.0.0.0:8022:localhost:22 serverUser@server

Теперь вы можете просто подключиться с MacBook к серверу с помощью ssh -p 8022 miniUser@server

Убедитесь, что для GatewayPorts установлено значение yes в /etc/ssh/sshd_config сервера.

Кроме того, вы можете определить некоторые вещи в ~/.ssh/config:

Host gate.mini
    HostName server
    Port 8022
    HostKeyAlias mini

Это позволяет вам делать более согласованный ssh miniUser@gate.mini и в то же время не беспокоить несоответствия отпечатков пальцев сервера.

4

На Mac Mini делаем:

ssh -R 1234:localhost:22 serverUser@server

Это будет перенаправлять соединения на порт 1234 сервера на порт 22 на Mac Mini.

Затем на MacBook сделайте:

ssh -L 1235:localhost:1234 serverUser@server

Это будет перенаправлять соединения на порт 1235 на MacBook на порт 1234 на сервере (который затем будет перенаправлен на Mac Mini с помощью вышеуказанной команды).

Наконец, чтобы получить фактическое соединение, на MacBook выполните:

ssh -p 1235 miniUser@localhost

Который подключается к порту 1235 на MacBook, который перенаправляется на порт 1234 на сервере, который перенаправляется на порт 22 на Mac Mini. Порты 1234 и 1235 могут быть установлены более или менее независимо от того, что вам нравится - и могут быть одинаковыми (я использовал разные числа, чтобы сделать объяснение более понятным). Аналогично, следует изменить порт 22, если SSH на Mac Mini прослушивает другой порт.

0

Вы можете туннелировать любую команду через сессию ssh. Это означает, что вы также можете туннелировать команду ssh через ssh.

Это будет выглядеть так:

ssh -t userOnServer@url.of.server ssh userOnMini@url.of.mini

Это открывает сеанс ssh для сервера и оттуда мгновенно открывает второй сеанс ssh для мини. С ssh-туннелем это должно работать без проблем с вашего компьютера MacBook. По крайней мере, учитывая, что мини доступен с сервера.

Требования:

  • SSH на MacBook
  • SSH-сервер и SSH-клиент на сервере
  • SSH-сервер и SSH-клиент на мини

Возможно, было бы неплохо создать псевдоним, чтобы вам не приходилось вводить его каждый раз, когда вы хотите подключиться. Также подумайте о соединении с сервером без пароля, чтобы вам не приходилось вводить 2 пароля для этого туннельного соединения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .