Linux выполнить команду удаленно - PullRequest
36 голосов
/ 02 марта 2011

как мне выполнить команду / скрипт на удаленном linux box? скажем, я хочу, чтобы служба tomcat запускалась на коробке b из коробки a.

Ответы [ 4 ]

52 голосов
/ 02 марта 2011

Полагаю, ssh - лучший защищенный способ для этого, например:

ssh -OPTIONS -p SSH_PORT user@remote_server "remote_command1; remote_command2; remote_script.sh"  

, где ВАРИАНТЫ должны быть развернуты в соответствии с вашими конкретными потребностями (например, привязка только к ipv4) иваша удаленная команда может запускать ваш демон tomcat.

Примечание :
Если вы не хотите получать подсказки при каждом запуске ssh, пожалуйста, посмотрите ssh-agent,и, возможно, keychain, если ваша система это позволяет.Ключ ... чтобы понять процесс обмена ключами ssh.Пожалуйста, внимательно посмотрите на ssh_config (т.е. файл конфигурации клиента ssh) и sshd_config (то есть файл конфигурации сервера ssh).Конфигурационные имена файлов зависят от вашей системы, в любом случае вы найдете их где-то вроде /etc/sshd_config.В идеале, pls не запускает ssh от имени пользователя root, а как отдельный пользователь с обеих сторон, серверов и клиентов.

Некоторые дополнительные документы на главных страницах исходного проекта:

ssh иssh-agent
man ssh

http://www.snailbook.com/index.html
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

брелок
http://www.gentoo.org/doc/en/keychain-guide.xml
старый туто на французском (сам :-), но может быть полезным:
http://hornetbzz.developpez.com/tutoriels/debian/ssh/keychain/

27 голосов
/ 02 марта 2011
 ssh user@machine 'bash -s' < local_script.sh

или вы можете просто

 ssh user@machine "remote command to run" 
2 голосов
/ 02 марта 2011

Мне кажется, эта статья хорошо объясняет:

Запуск команд на удаленном хосте Linux / UNIX

Google - ваш лучший друг; -)

0 голосов
/ 27 декабря 2016

Если вы не хотите иметь дело с безопасностью и хотите сделать ее максимально открытой (так называемой «удобной») на короткий срок, и | или у вас нет ssh / telnet или генерации ключей на всех ваших хостах,Вы можете взломать однострочник вместе с Netcat.Напишите команду на порт вашего целевого компьютера по сети, и он запустит ее.Затем вы можете заблокировать доступ к этому порту нескольким «доверенным» пользователям или обернуть его в сценарий, который позволяет выполнять только определенные команды.И используйте пользователя с низким уровнем привилегий.

на сервере

mkfifo /tmp/netfifo; nc -lk 4201 0</tmp/netfifo | bash -e &>/tmp/netfifo

Этот вкладыш читает любую строку, которую вы отправляете в этот порт, и направляет ее в bash для выполнения.stderr & stdout сбрасываются обратно в netfifo и отправляются обратно на подключающийся хост через nc.

на клиенте

Чтобы выполнить команду удаленно: echo "ls" | nc HOST 4201

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...