Я студент CS, и все еще учусь многим из этих вещей, поэтому, пожалуйста, потерпите меня, если я не совсем понимаю, что я пытаюсь здесь сделать.
Я на Mac, подключаюсь к машине linux. Я могу настроить туннель SSH и подключиться к удаленной машине, выполнив следующую строку сценария:
ssh -f -L 2222:<remote_machine>:22 <user>@<remote_server> sleep 10; ssh -p 2222 <user>@localhost
Что я хочу сделать, так это выполнить эту строку автоматически. Теперь я должен скопировать и вставить его в терминал. У меня настроены пары ключей, поэтому не нужно вводить пароли, но я получаю подсказку для моего типа терминала. Это два шага, которые я хотел бы исключить, поэтому я могу открыть терминал и запустить скрипт, который устраняет эти два шага.
Чего я не могу понять, так это как ответить на приглашение типа терминала или автоматически ответить на него. Я поигрался с классом Expect и модулем pexpect в Python, но не увенчался успехом (похоже, сценарий ожидаемого мог бы позаботиться о терминальной части, но не смог создать туннель и не потерял ссылку на фон. процесс).
У меня есть appleScript, который делает то, что я хочу, но хотел бы более портативное решение. Любые предложения о том, где искать, было бы здорово!
Самый простой способ - создать псевдоним для этой команды. Добавьте эту строку в ваш
$HOMe/.bashrc
файл:Затем с обычного терминала вы сможете запустить свой туннель, запустив
источник