ssh через несколько хостов

Вот некоторые ситуации, где компиляция Вашего собственного ядра принесет пользу Вам:

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

  • Отключение поддержки/dev/kmem или нанесение вреда ему с соответствующим параметром компилятора являются хорошей вещью для безопасности. Я думаю, что большинство дистрибутивов делает это по умолчанию теперь.

  • Я предпочитаю не использовать initrd's, если это возможно. Настройка Вашего ядра к аппаратным средствам, от которых это загружается, устраняет initrd.

  • Иногда более поздняя версия ядра будет иметь функции, в которых Вы нуждаетесь, но это очень редко сегодня. Я помню, когда я сначала начал использовать Debian, он использовал 2,4 ядра, но мне были нужны 2,6 ядра для поддержки udev.

  • Отключение сетевых протоколов/опций, в которых Вы не нуждаетесь, может ускорить Вашу производительность TCP/IP.

  • Отключение опций, в которых Вы не нуждаетесь, понижает объем потребляемой памяти ядра, которое важно в низких средах RAM. Когда Вы используете систему RAM 256 МБ в качестве маршрутизатора, это помогает.

  • Я нахожу все "tty" устройства в/dev раздражении в системах, где я обычно только регистрируюсь на пути последовательный или ssh.

37
24.11.2011, 10:35
3 ответа

Можно использовать ssh клиент для выполнения ssh на удаленной машине после входа в систему.

ssh -t unix.university.com \
    ssh -t unix.department.univeristy.com \
    ssh -t office-machine.department.university.com

(Причина я включаю -t в вызовах то, потому что ssh давал мне ошибочное ре: stdin, не являющийся терминалом, когда я попробовал его на своей собственной машине; Ваша машина может отличаться.)

Когда Вы выйдете от последней оболочки, процесс будет цепочечный выход, сохраняя Вас вводящий Ctrl-D много раз.

32
27.01.2020, 19:36
  • 1
    , отметьте: только добавьте"-t", если Вы просто делаете вход в систему на удаленной машине. Для запуска команды на удаленной машине НЕ помещайте их, поскольку они повреждены некоторые вещи (для exemple: tar cf - something | ssh somewhere "cd /path/remote ; tar xf - " : мог стать поврежденным, если Вы добавляете -t ! Видят exemple ответ замечательного StephaneChazelas unix.stackexchange.com/questions/151916 / …) –  Olivier Dulac 20.01.2017, 12:07
  • 2
    Используя-J более безопасно, чем этот ответ, потому что у Вас затем есть возможность сохранить весь ssh, включает Ваш локальный компьютер.-J опция была представлена в openssh версии 7.3, как упомянуто в ответе от @Miikka –  Erik Sjölund 16.01.2018, 20:15
  • 3
    @ErikSjölund Openssh не позволяет больше чем один -J опция. Я думаю, что Вы могли сделать это с несколькими ProxyCommand опции в Вашей конфигурации. –  amphetamachine 30.01.2018, 18:36
  • 4
    @amphetamachine С -J можно указать разделенный запятыми список транзитных участков для прохождения через. Но использование ProxyCommand с -W все еще намного лучший подход, чем этот ответ, если Вы, оказывается, используете версию, слишком старую для поддержки -J. –  kasperd 11.02.2018, 02:22

Да, существует отличный способ сделать тот ssh ProxyCommand использования и netcat

Поместите что-то вроде этого в свой .ssh/config

Host *.department.university.com
User me
ForwardAgent yes
ProxyCommand ssh unix.university.com nc %h %p

Это войдет непосредственно в любой сервер .department.university.com с помощью хоста перехода/оплота unix.university.com. Вам, возможно, также понадобится строка файла конфигурации для unix.university.com непосредственно.

Вот ссылка, объясняющая, как она работает: http://backdrift.org/transparent-proxy-with-ssh

С этой техникой можно теперь просто записать

ssh unix.department.university.com

и это будет все казаться прямым. Инструменты как rsync, scp, и т.д. (что-либо в стопке ssh) будут работать прозрачно, также.

36
27.01.2020, 19:36
  • 1
    +1 я использую что-то подобное этому для продвижения данных от испытательной сети до сети напоминания через сервер подготовки. –  Arcege 22.11.2011, 01:20
  • 2
    Да, это работает отлично! –  gabe. 24.11.2011, 21:05
  • 3
    Только для справки более новые версии ssh поддерживают -W опция, можно сделать что-то как ProxyCommand ssh -W %h:%p gateway вместо в зависимости от nc –  Ulrich Dangel 25.06.2012, 02:38
  • 4
    , Хорошего для знания! Спасибо –  Aaron Brown 25.06.2012, 02:39
  • 5
    работает отлично, если имя пользователя является тем же через машины; если это отличается, необходимо сделать что-то как ProxyCommand ssh -W %h:%p user@gateway –  Riccardo Cossu 12.06.2013, 17:35

Туннелирование SSH. Я не вспоминаю точно, как сделать это однако, я знаю, что существует способ в основном иметь машину, позволяют туннель, возможно, соединяясь с отдельным портом. Тем путем Вы просто окружаете к той же начальной машине (с другим портом, например), и она шлепнется Вы на Вашем заключительном местоположении.

Должен был бы искать, как настроить его все же.

:)

-5
27.01.2020, 19:36
  • 1
    Вы не хотите (и вероятно Вы не можете) открывать порт или Ваш университет ssh шлюз … –  Stéphane Gimenez 25.11.2011, 01:34
  • 2
    Если Вы не знаете, как сделать это и не можете быть побеспокоены для поиска его, почему Вы отправляли этот ответ? –  amphetamachine 28.11.2011, 10:32
  • 3
    Едва ли ответ –  gabe. 06.12.2011, 01:24

Теги

Похожие вопросы