Запустите удаленную команду, используя конфигурационный файл ssh
32
Я хотел бы иметь возможность настроить команду для запуска по SSH входа на сервер, без необходимости вводить ее. В основном я ищу файл конфигурации ssh, эквивалентный:
Также можно вставить команду в ваш файл авторизованных ключей. ( ~/.ssh/authorized_keys). Это позволяет вам выполнить пользовательскую команду для каждого ключа в файле. Я использую это для пересылки подключений оболочки через мой брандмауэр. В результате я могу подключиться по ssh к одному хосту, и он автоматически подключает сеанс к хосту в сети. authorized_keysЗапись выглядит следующим образом :
command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...
Точнее, редирект для моего экземпляра Gitolite. Это позволяет простой внешний доступ без прямого воздействия на хост gitolite для любого внешнего доступа. Проверьте man-страницу для получения дополнительной информации. ( http://linux.die.net/man/8/sshd )
Это круто, я не знал, что ты сможешь это сделать. +1
Брайан Виггинтон
3
Если вы поместите команду в свой файл author_keys, она сломает такие вещи, как rsync и scp - вы получите что-то вроде этого: открыть терминал не удалось: не терминал. Также имейте в виду, что если команда не будет выполнена, вы не сможете войти в систему. Я обнаружил, что это трудный путь.
Если вы работаете в OpenSSH, похоже ,
~/.ssh/rc
будет выполняться при входе в систему .источник
/.ssh/rc
на клиентской или серверной машине? Похоже из документации на сервер, верно?rc
файл, похоже, не запускается, напримерscreen
, появляется сообщение «Должен быть подключен к терминалу»Вы можете настроить псевдоним bash.
В вашем файле .bashrc вставьте:
Тогда вам даже не придется вводить имя хоста.
Или, если вы хотите сделать это с несколькими хостами (а несколько псевдонимов не будут работать), используйте небольшой скрипт:
источник
Вы можете решить это по-своему
.ssh/config file
, для хоста, на котором вы хотите выполнить команду, добавьтегде
<some command>
твоя команда Это также работает с экраном или tmux.источник