关于远程发送执行命令

admin
2025-05-18 / 0 评论 / 16 阅读 / 正在检测是否收录...


在日常工作中,经常会遇到服务器与服务器间远程发送执行命令的情况,当然解决的方式有多种,比如用堡垒机免密登录和执行命令,比如CICD中用Jenkins等工具做免密拉取git仓库代码然后打包并推送到生产环境服务器,再比如服务器间做了免密后直接执行命令等等,本文在此基础上做了个总结。。


免密的远程发送执行命令

前提条件:已配置ssh免密码登陆(略)


对于简单的命令:

ssh user@remoteNode "cd /home ; ls"

双引号必须 两个命令之间用分号隔开


多个命令可以写个脚本:

远程执行的内容在“<< eeooff ” 至“ eeooff ”之间, eeooff可以随便修改成其他形式,在结束前,加exit退出远程节点

直接本地执行脚本即可:bash abc.sh


让远程服务器执行本地的脚本

我们在本地创建一个脚本文件test.sh

ssh root@xxx.xxx.xxx.xxx "/usr/bin/bash" < test.sh


本地执行远程服务器上的脚本

我们在远程服务器创建一个脚本文件test.sh

ssh root@xxx.xxx.xxx.xxx "/home/nick/test.sh"


利用ssh的-t参数

提供一个远程服务器的虚拟tty终端

ssh -t -p 22 $user@$ip 'vim aaa.txt'


指定密码的远程发送执行命令

如果服务器之间没有做免密,则用到sshpass命令,把密码传送过去

安装:yum install sshpass -y

示例:远程复制 scp

sshpass -p 'password' scp -P 22 ./main root@127.0.0.1:/goproject/main

示例:远程执行sh脚本

sshpass -p 'password' ssh -p 22 root@172.0.0.1 /goproject/stop.sh


交互式远程发送执行命令



0

评论 (0)

取消