Подтвердить что ты не робот

Linux выполнить команду удаленно

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

4b9b3361

Ответ 1

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

ssh -OPTIONS -p SSH_PORT [email protected]_server "remote_command1; remote_command2; remote_script.sh"  

где ОПЦИИ должны быть развернуты в соответствии с вашими конкретными потребностями (например, привязка только к ipv4), и ваша удаленная команда может запускать ваш демон tomcat.

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

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

ssh и ssh-agent
человек ssh (RFM!)
http://www.snailbook.com/index.html
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20key%20fingerprints

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

Ответ 4

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

на сервере

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

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

на клиенте

Для запуска команды удаленно: echo "ls" | nc HOST 4201