Чтобы добраться до моей машины в моем офисе, в данный момент я делаю это:
me@home:~$ ssh unix.university.com
me@unix:~$ ssh unix.department.univeristy.com
me@unix.department:~$ ssh office-machine.department.university.com
me@office-machine:~$ echo "This is very annoying"
Есть ли простой способ автоматизации этого процесса, возможно, единственная команда, которую я могу использовать на своем конце?
ssh
multiple-machines
Лукас
источник
источник
Ответы:
Вы можете использовать клиент ssh для запуска ssh на удаленной машине при входе в систему.
(Причина, по которой я включаю
-t
в вызовы, заключается в том, что ssh давал мне ошибки: stdin не был терминалом, когда я пробовал его на своей машине; ваша машина может отличаться.)Когда вы выйдете из последней оболочки, процесс завершится цепным выходом, что позволит вам печатать Ctrl-Dснова и снова.
источник
tar cf - something | ssh somewhere "cd /path/remote ; tar xf - "
: может быть повреждено , если вы добавите-t
Смотрите Exemple чудесного StephaneChazelas Ответит! Unix.stackexchange.com/questions/151916/ … )-J
варианта. Я думаю, что вы могли бы сделать это с несколькимиProxyCommand
опциями в вашей конфигурации.-J
вы можете указать разделенный запятыми список прыжков, которые нужно пройти. Но использованиеProxyCommand
с-W
- все еще намного лучший подход, чем этот ответ, если вы используете версию, слишком старую для поддержки-J
.Да, есть отличный способ сделать это, используя ssh ProxyCommand и netcat
Поместите что-то вроде этого в ваш .ssh / config
Это будет входить непосредственно на любой сервер .department.university.com, используя хост перехода / бастиона unix.university.com. Вам также может понадобиться раздел для unix.university.com напрямую.
Вот ссылка, объясняющая, как это работает: http://backdrift.org/transparent-proxy-with-ssh
С помощью этой техники вы теперь можете просто написать
и все это будет казаться прямым. Такие инструменты, как rsync, scp и т. Д. (Все, что находится в стеке ssh) также будут работать прозрачно.
источник
-W
опцию, вы можете сделать что-то вродеProxyCommand ssh -W %h:%p gateway
этого, вместо того, чтобы зависеть от ncProxyCommand ssh -W %h:%p user@gateway
В OpenSSH 7.3 ssh добавил
-J
флаг командной строки и соответствующийProxyJump
параметр конфигурации, чтобы решить именно эту проблему.Укажите хосты, через которые вы хотите использовать ssh, в виде списка через запятую
-J
. Например:источник
SSH туннелирование. Я не помню точно, как это сделать, однако я знаю, что есть способ, позволяющий машине разрешить туннель, возможно, подключившись к отдельному порту. Таким образом, вы просто подключаетесь к одной и той же начальной машине (например, с другим портом), и это приведет вас к вашему окончательному местоположению.
Должен был бы посмотреть, как его настроить, хотя.
:)
источник