Как вводить команды в начале интерактивного сеанса SSH? - PullRequest
2 голосов
/ 05 октября 2011

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

Есть идеи?

Я использовал ожидаемый сценарий с командой «взаимодействовать» в конце, которая работает для большинства вещей, но неуклюжа и ломает некоторые консольные приложения. Также возни с пустыми ожиданиями и сокатом. Любые другие предложения?

1 Ответ

1 голос
/ 05 октября 2011

Если вы можете написать где-нибудь в файловой системе, вы можете вызвать bash с помощью пользовательского файла rc, например:

ssh me@example.com -t bash --rcfile /home/user/my_private_profile -i

Обратите внимание, что это работает только для интерактивной оболочки,не логин снарядов.Параметр -t для ssh позволяет выделить pty, даже если вы указываете команду.

Если вы не можете нигде записать в файловую систему, вы можете использовать подоболочку для предоставления именованного канала в качествеrcfile:

$ ssh ares -t "bash --rcfile <(echo 'FOO=foo';echo 'BAR=bar') -i"
axa@ares:~$ echo $FOO
foo
axa@ares:~$ echo $BAR
bar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...