如何在远程 Linux 机器上执行命令/脚本? 比如,我想从机器 A 在机器 B 上启动 Tomcat 服务。
我猜ssh
是最安全的方式,例如:
ssh -OPTIONS -p SSH_PORT user@remote_server "remote_command1; remote_command2; remote_script.sh"
您需要根据特定需求(例如,仅绑定到ipv4)部署OPTIONS,并且您的远程命令可能启动您的tomcat守护进程。
注意:
如果您不想在每次运行ssh时都被提示,请查看ssh-agent,如有必要可以查看keychain。关键是了解ssh密钥交换过程。请仔细查看ssh_config(即ssh客户端配置文件)和sshd_config(即ssh服务器配置文件)。配置文件名取决于您的系统,但无论如何,您都会在某个地方找到它们,例如/etc/sshd_config
。理想情况下,请勿将ssh作为root运行,而应在双方服务器和客户端上以特定用户身份运行。
一些源项目主页的额外文档:
ssh and ssh-agent
man ssh
http://www.snailbook.com/index.html
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
keychain
http://www.gentoo.org/doc/en/keychain-guide.xml
一篇较老的法语教程(由我自己编写 :-) ,但也可能有用):
http://hornetbzz.developpez.com/tutoriels/debian/ssh/keychain/
ssh user@machine 'bash -s' < local_script.sh
或者你可以直接
ssh user@machine "remote command to run"