linux wykonuje polecenie zdalnie

Jak wykonać polecenie / skrypt na zdalnym Linuksie? say I want to do Service tomcat start on box b from box a.

Author: user121196, 2011-03-02

4 answers

Myślę, że ssh jest najlepszym zabezpieczeniem na to, na przykład:

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

Gdzie opcje muszą być wdrożone zgodnie z konkretnymi potrzebami (na przykład powiązanie tylko z ipv4), a twoje zdalne polecenie może uruchamiać demona tomcat.

Uwaga :
jeśli nie chcesz być prompt przy każdym uruchomieniu ssh, pls mają również spojrzenie na ssh-agent, i opcjonalnie do keychain, jeśli system na to pozwala. Klucz jest... aby zrozumieć proces wymiany kluczy ssh. Pls take uważne spojrzenie na ssh_config (np. konfiguracja klienta ssh) i sshd_config (np. konfiguracja serwera SSH). Nazwy plików konfiguracyjnych zależą od Twojego systemu, w każdym razie znajdziesz je gdzieś jak /etc/sshd_config. Idealnie, pls nie uruchomić ssh jako root oczywiście, ale z dedykowanym użytkownikiem na obu serwerach.

Kilka dodatkowych dokumentów nad głównymi stronami projektu source:

SSH i ssh-agent
mężczyźni ssh

Http://www.snailbook.com/index.html
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20key%20fingerprints{[21]

Brelok
http://www.gentoo.org/doc/en/keychain-guide.xml
starsze tuto po francusku (sam :-) ale też może się przydać :
http://hornetbzz.developpez.com/tutoriels/debian/ssh/keychain/

 46
Author: hornetbzz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-21 20:51:29
 ssh user@machine 'bash -s' < local_script.sh

Or you can just

 ssh user@machine "remote command to run" 
 22
Author: Orbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-02 01:53:36

Myślę, że ten artykuł dobrze wyjaśnia:

Uruchamianie poleceń na zdalnym serwerze Linux / UNIX

Google to Twój najlepszy przyjaciel; -)

 2
Author: Jerry Tian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-23 06:00:53

Jeśli nie chcesz zajmować się bezpieczeństwem i chcesz uczynić go jak najbardziej narażonym (aka" wygodnym") na krótką metę i|lub nie masz SSH/telnet lub generowania kluczy na wszystkich swoich hostach, możesz włamać się do jednego linera razem z netcatem. Napisz polecenie do portu docelowego komputera przez Sieć i uruchomi je. Następnie możesz zablokować dostęp do tego portu dla kilku "zaufanych" użytkowników lub zawinąć go w skrypt, który pozwala na uruchamianie tylko niektórych poleceń. I używać użytkownika o niskich uprawnieniach.

Na serwerze

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

Ten jeden liner odczytuje dowolny ciąg, który wyślesz do tego portu i wysyła go do bash, aby został wykonany. stderr i stdout są wrzucane z powrotem do netfifo i wysyłane z powrotem do łączącego się hosta przez nc.

Na kliencie

Aby uruchomić polecenie zdalnie: echo "ls" | nc HOST 4201

 0
Author: Beracah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-27 06:06:56