linux远程执行命令

时间:2011-03-02 01:48:59

标签: linux command

如何在远程linux机器上执行命令/脚本? 说我想从盒子a开始在盒子b上开始服务tomcat。

4 个答案:

答案 0 :(得分:50)

我猜ssh是最好的安全方式,例如:

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

必须根据您的特定需求部署OPTIONS(例如,仅绑定到ipv4),并且您的远程命令可能正在启动您的tomcat守护程序。

注意
如果您不想在每次ssh运行时都提示,请同时查看ssh-agent,如果您的系统允许,还可以选择keychain。关键是...了解ssh密钥交换过程。请仔细查看ssh_config(即ssh客户端配置文件)和sshd_config(即ssh服务器配置文件)。配置文件名取决于您的系统,无论如何您都会在/etc/sshd_config之类的地方找到它们。理想情况下,pls不会以root身份运行ssh,而是作为双方,服务器和客户端的特定用户运行。

源项目主页上的一些额外文档:

ssh和ssh-agent
男人ssh

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

<强>钥匙扣
http://www.gentoo.org/doc/en/keychain-guide.xml
法语中较老的tuto(由我自己:-)但也可能有用:
http://hornetbzz.developpez.com/tutoriels/debian/ssh/keychain/

答案 1 :(得分:26)

 ssh user@machine 'bash -s' < local_script.sh

或者你可以

 ssh user@machine "remote command to run" 

答案 2 :(得分:2)

我认为这篇文章解释得很好:

Running Commands on a Remote Linux / UNIX Host

Google是你最好的朋友; - )

答案 3 :(得分:0)

如果您不想处理安全问题并希望在短期内尽可能地使其暴露(也称为“方便”),并且在所有主机上都没有ssh / telnet或密钥生成,你可以和netcat一起破解一个单行。通过网络向目标计算机的端口写入命令,它将运行它。然后,您可以阻止对某些“受信任”用户访问该端口,或将其包装在仅允许某些命令运行的脚本中。并使用低权限用户。

服务器上的

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

这一个班轮读取你发送到该端口的任何字符串,并将其传输到bash中以便执行。 stderr&amp; stdout被转储回netfifo并通过nc发送回连接主机。

客户端上的

远程运行命令: echo "ls" | nc HOST 4201