如何在远程Linux机器上执行命令/脚本?比如,我想从机器a在机器b上执行service tomcat start。
service tomcat start
0md85ypi1#
我想ssh是最好的安全方法,例如:
ssh
ssh -OPTIONS -p SSH_PORT user@remote_server "remote_command1; remote_command2; remote_script.sh"
字符串其中OPTIONS必须根据您的特定需求进行部署(例如,仅绑定到ipv4),并且您的远程命令可以启动tomcat守护程序。
备注:
如果你不想在每次运行ssh时都得到提示,请查看ssh-agent,如果你的系统允许的话,还可以选择keychain。关键是.(即ssh客户端配置文件)和sshd_config(即ssh服务器配置文件)。配置文件名取决于您的系统,无论如何,您都会在/etc/sshd_config之类的地方找到它们。理想情况下,请不要以root身份运行ssh,而是在服务器和客户端都以特定用户的身份运行。一些额外的文档在源项目主页上:
keychain
/etc/sshd_config
ssh和ssh-agent
曼什http://www.snailbook.com/index.htmlhttps://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/的
zynd9foi2#
ssh user@machine 'bash -s' < local_script.sh
字符串或者你可以
ssh user@machine "remote command to run"
型
l3zydbqr3#
如果你不想处理安全问题,而想在短期内尽可能地暴露它(又名“方便”),|或者你的主机上没有ssh/telnet或密钥生成,你可以用netcat来破解一行程序。通过网络向你的目标计算机的端口写一个命令,它会运行它。然后你可以阻止一些“可信”的用户访问该端口,或者把它 Package 在一个只允许某些命令运行的脚本中。并使用一个低特权用户。
第一个月这一行读取你发送到那个端口的任何字符串,并将其传递到bash中执行。stderr和stdout被转储回netfifo,并通过nc发送回连接主机。
远程运行命令:echo "ls" | nc HOST 4201
echo "ls" | nc HOST 4201
3条答案
按热度按时间0md85ypi1#
我想
ssh
是最好的安全方法,例如:字符串
其中OPTIONS必须根据您的特定需求进行部署(例如,仅绑定到ipv4),并且您的远程命令可以启动tomcat守护程序。
备注:
如果你不想在每次运行ssh时都得到提示,请查看ssh-agent,如果你的系统允许的话,还可以选择
keychain
。关键是.(即ssh客户端配置文件)和sshd_config(即ssh服务器配置文件)。配置文件名取决于您的系统,无论如何,您都会在/etc/sshd_config
之类的地方找到它们。理想情况下,请不要以root身份运行ssh,而是在服务器和客户端都以特定用户的身份运行。一些额外的文档在源项目主页上:
ssh和ssh-agent
曼什
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/的
zynd9foi2#
字符串
或者你可以
型
l3zydbqr3#
如果你不想处理安全问题,而想在短期内尽可能地暴露它(又名“方便”),|或者你的主机上没有ssh/telnet或密钥生成,你可以用netcat来破解一行程序。通过网络向你的目标计算机的端口写一个命令,它会运行它。然后你可以阻止一些“可信”的用户访问该端口,或者把它 Package 在一个只允许某些命令运行的脚本中。并使用一个低特权用户。
在服务器上
第一个月
这一行读取你发送到那个端口的任何字符串,并将其传递到bash中执行。stderr和stdout被转储回netfifo,并通过nc发送回连接主机。
在客户端
远程运行命令:
echo "ls" | nc HOST 4201