首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SSH运行本地工作但不能远程工作的sh脚本

可能是由于以下几个原因导致的:

  1. 防火墙设置:远程服务器上的防火墙可能阻止了SSH连接。可以通过检查服务器的防火墙规则,确保SSH服务的端口(默认为22)是开放的。
  2. SSH配置错误:远程服务器的SSH配置文件(通常是/etc/ssh/sshd_config)可能存在错误配置。可以检查配置文件中的以下几个关键设置:
    • 确保"PermitRootLogin"设置为"yes",允许使用root用户进行远程登录。
    • 确保"PasswordAuthentication"设置为"yes",允许使用密码进行身份验证。
    • 确保"PubkeyAuthentication"设置为"yes",允许使用公钥进行身份验证。
  • SSH密钥问题:如果使用SSH密钥进行身份验证,可能是密钥配置有问题。可以检查本地机器上的SSH密钥是否正确生成,并将公钥添加到远程服务器的授权文件(通常是~/.ssh/authorized_keys)中。
  • 用户权限问题:远程服务器上的用户可能没有足够的权限来运行脚本。可以检查脚本所需的文件和目录的权限,并确保用户具有执行脚本的权限。
  • 环境变量问题:脚本可能依赖于特定的环境变量,而远程服务器上的环境可能与本地机器不同。可以在脚本中添加适当的环境变量设置,或者在脚本中指定绝对路径来解决此问题。

综上所述,如果SSH运行本地工作但不能远程工作的sh脚本,可以通过检查防火墙设置、SSH配置、SSH密钥、用户权限和环境变量等方面来解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

电脑静音工作,又听不到12306来票音乐,纠结啊 !春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!

为了不让别人听见你在买票,只好把声音关了,这样你就不知道有票来了! 所以只好不断偷偷切换窗口,看票来了没有,弄得工作都没有心情。...有朋友说可以试试360等自动抢票工具,作为程序员我,决定自己动手,丰衣足食。...一、问题分析和解决思路: 本篇文章要解决就是“无声出票弹窗”功能,分析需求,主要在于及时弹窗,12306页面上有出票“弹窗”功能,这只是一个DIV层,当你在工作时候,浏览器这种弹窗功能并不能弹窗到你当前工作上面来....NET 2.0框架,或者 4.0框架即可运行本程序,一般情况下,Win7,Win8可以直接使用,部分XP系统下面,可能没有安装 MSHTML 组件,需要下载 第二个文件到运行目录,如果你出现下面的错误信息...此时需要下载 上面的第二个文件 ,下载下来文件名是 Microsoft.mshtml.dll.bak ,将文件改名为 Microsoft.mshtml.dll 放到 购票程序运行目录下面去即可。

1.2K60

分享工作中常用一个Git脚本前言一个自动化脚本运行结果脚本内容

前言 在实际开发中,我们很频繁需要从git远程仓库拉取master代码建立分支进行开发,开发完毕后,我们需要push到远程进行build、部署和测试,这里博主根据自己情况,编写了一个git脚本,让我们只需要关心开发代码...git脚本1-26行 运行这个git脚本,需要项目名/git clone url/你开发分支名称(比如feature/xxx) ?...git脚本27-46行 上面脚本意思,就是想在特定目录中,进行git clone,并从master新建本地开发分支。 ?...git脚本47-62行 把本地开发分支push到远程,并建立它们之间关联关系,之后就可以打开idea进行开发啦~ 运行结果 ? 运行脚本参数不正确 ? 运行正常 ? 目录查看确认 脚本内容 #!.../bin/sh #脚本执行需要3个参数 if [ $# -eq 3 ] then   echo "开始执行git脚本..."

88630

【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

shell脚本来完成剩余工作 涉及几个模块包括实现SSH连接node-ssh模块(底层是ssh2模块,这个模块是一个Promise封装),用于制作zip压缩包archiver模块。...node-ssh提供了上传本地目录方法,实际使用过程中发现并不稳定,从告警信息来看是node-stream模块在传送时将不同格式文件转换为流时可能会出现异常,实测大约有一半概率触发,尝试修改了一些配置参数并未解决...(0); }); } //执行远端部署脚本 function startRemoteShell() { //在服务器上cwd配置路径下执行sh deploy.sh脚本来实现发布...; process.exit(0); } }); } 4.3 远端脚本deploy.sh 当发布包上传至远程服务器后,剩余工作在远端来完成就可以了,你只需要将后续工作写进...至此,一个简易自动化部署就做完了。你只需要在本地输入npm run deploy,后续工作就会自动执行。 五.

1.7K20

如何在 Linux 上复制文件文件夹到远程服务器?

你可以挑一个喜欢方法。当然,看看其他命令也能在别的地方帮到你。 我已经在自己环境下测试过所有的命令和脚本了,因此你可以直接用到日常工作当中。...通常大家都倾向 scp,因为它是文件复制原生命令native command之一。本文所列出其它命令也很好用,建议你尝试一下。 文件复制可以轻易地用以下四种方法。...它能本地复制、通过远程 shell 在其它主机之间复制,或者与远程 rsync 守护进程daemon 之间复制。 pscp:是一个并行复制文件到多个主机上程序。...# chmod +x file-copy.sh 最后运行脚本完成复制。 # ..../backupdone 运行脚本,输入文件名。

15.5K10

shell 常用命令

,那没啥问题,需要交互时,你手动输入即可 如果这个过程是交由脚本来自动执行,难不成每次脚本执行时,还需要你在旁边等着来输密码吗?...场景是这样本地开发后端 spring-boot 项目,然后有一台专门 jenkins 服务器,自动或手动触发构建 jenkins 构建时,会自动去拉取代码,然后执行 package.sh 打包脚本...,生成 jar 包 再然后,执行 deploy.sh 脚本,将 jar 发送到另一台项目运行服务器上,先停止旧项目的执行,然后移除旧 jar 包,执行新 jar 包,启动后端项目 package.sh...-ne 0 ]; then exit 1 fi } # 进入项目根目录,执行打包工作 cd $basedir/app package exit 0 deploy.sh 部署脚本...-ne 0 ]; then exit 1 fi # 执行部署脚本,指定项目运行服务器连接端口号,ip,登录用户,密码,移包路径 /usr/bin/expect jenkins/deploy.sh

1.3K21

资源 | 数据科学家必备21个命令行工具

当我们访问远程机器端口时,将会创建一个 SSH 通道(SSH-tunnel),并且连接将转向特定主机端口。 N:禁止远程运行命令行。只有转发端口时才起作用。...例如,如果我们使用是开放网络,并不希望其他人拦截我们数据就可使用 SSH 通道。 2....设置: L:执行一个本地端口转发。当我们访问本地机器端口时,特定主机主机端口将会在通道端口上创建。 从世界到网络通道(反向通道)在我们需要访问机器,机器又被防火墙保护时需要。...file-or-folder-to-archive new-zip-file-name.zip 解压缩文件 unzip -d new-zip-file-name.zip 其中-d destination_folder 当然,在远程主机上工作不能在没有文件转移...(在本地计算机和远程主机间)情况下完成。

87880

数据科学家必备21个命令行工具

当我们访问远程机器端口时,将会创建一个 SSH 通道(SSH-tunnel),并且连接将转向特定主机端口。 N:禁止远程运行命令行。只有转发端口时才起作用。...例如,如果我们使用是开放网络,并不希望其他人拦截我们数据就可使用 SSH 通道。 2....设置: L:执行一个本地端口转发。当我们访问本地机器端口时,特定主机主机端口将会在通道端口上创建。 从世界到网络通道(反向通道)在我们需要访问机器,机器又被防火墙保护时需要。...file-or-folder-to-archive new-zip-file-name.zip 解压缩文件 unzip -d new-zip-file-name.zip 其中-d destination_folder 当然,在远程主机上工作不能在没有文件转移...(在本地计算机和远程主机间)情况下完成。

54720

使用并发 ssh 连接来提升捞日志脚本执行效率

通过提前检查哪些机器是可以连通,可以节约这 40 分钟,具体做法就是运行 check_instance.sh 这个脚本: #!...,另外这个不能防止本地文件冲突,因此不同用户最好有自己单独脚本副本) 脚本接收参数由真正执行日志捞取脚本传递,关于如何给远程脚本传递参数,稍后给出 干活脚本有了,下面就来看一下负责上传脚本 upload_fetch_log.sh...,如果当前实例数 (n) 达到整批次,说明要开启一个新批次了,此时需要先 wait 上个批次所有进程,确保它们都完成了 ssh 执行,这一步很重要,否则会一次建立 300 多个连接,就不能实现之前说分批运行目标...异步执行会非常快返回,不存在之前那 2 秒排队问题了 之前已经将过滤脚本上传到了远程实例 /tmp 目录,所以这里直接调用 /tmp/fetch_log.sh 远程 ssh 脚本传参比较直观,就是直接在脚本后面加相应参数字符串...等待子进程就可以完成批次等待,不过这有一个前题 —— 并发脚本没有其它独立运行子进程,换句话说,就是不能同时有其它异步执行任务。

96430

日常开发技巧:在远程机器上直接使用adb

背景 嵌入式开发中,开发工作是在远程服务器上进行。当需要adb推送一个文件到开发板时,则需要重新在本地机器中找到该文件,再执行命令。这样操作比较麻烦。 下面介绍我解决方式。...sshfs挂载 首先,我是通过sshfs将远程机器,挂载到了本地。并且在挂载时,挑选了同一目录。即,将远程机器~/workspace挂载到了本地~/workspace。...这么做好处是,远程路径,可以直接复制黏贴到本地使用。 配置免密码登录 在远程机器上,配置好.ssh/config并使用ssh-copy-id设置免密码登录。假设配置好本地机器别名,叫ZQB。...则此时可在远程机器上,可直接ssh ZQB登录回本地机器。 编写包装脚本 既然已经通过sshfs将远程机器挂载到本地,且目录一致,则脚本很简单,ssh回到本地机器,并切换到同一目录,再执行命令即可。...如果未事先用ssh挂载到同一目录,则可对应自己平时使用习惯,修改脚本。如先使用scp先拷贝文件,再ssh执行命令,原理是一样。目的就是,自动化平时手工操作中重复操作,简化使用。

95320

通过JSch运行远程linux主机上shell脚本

如果您看完文章之后,觉得对您有帮助,请帮我点个赞,您支持是我不竭创作动力! 运行远程主机上shell脚本 下面的例子是教给大家如何通过java程序,运行远程主机上shell脚本。...远程shell脚本 下面的代码放入一个文件:hello.sh脚本内容很简单只是用来测试,回显输出“hello ” #!.../bin/sh echo "hello $1\n"; 然后我把它放到远程主机/root目录下面,远程主机IP是1.1.1.1(当然我真实测试时候不是这个IP,我不能把我真实IP写到这个文章里面,以免被攻击...并且在远程主机上,为这个脚本设置可执行权限,方法如下: $ chmod +x hello.sh 本地java程序 我们可以使用下面的代码,去远程linux 主机执行shell脚本,详细功能请看代码注释...= null) { jschSession.disconnect(); } } } } 最终在本地控制台,获得远程主机上shell脚本执行结果。

2.1K00

我用STM32MP1做了个疫情监控平台1—交叉编译环境搭建

因为这个文件是运行在ARM架构系统上,所以在PC上不能运行,下面我们把这个文件放到开发板上去运行。 4.在开发板上运行Hello World程序 怎么能在开发板上运行这个程序呢?...,只要将从本地复制到远程命令后2个参数调换顺序即可。...-l b.cpp #把远程a.cpp保存到本地,不重命名 tftp 192.168.1.111 -g -r a.cpp 实际运行: ?...参数说明: -g 表示下载文件(get) -p 表示上传文件(put) -l 表示本地文件名(local file) -r 表示远程主机文件名(remote file) 5.ssh登录开发板 如果scp...#scp传输 scp led_blink.sh root@192.168.1.136:/home/root #开发板给这个脚本添加可执行权限 chmod +x led_blink.sh #开发板执行这个脚本

1.4K10

详解SSH 远程执行任务方法

因为此时你应该是想要运行一个 shell 会话。 但是当你通过 ssh远程主机上执行命令时,并不会为这个远程会话分配 TTY。此时 ssh 会立即退出远程主机,所以需要交互命令也随之结束。...执行本地脚本 我们在本地创建一个脚本文件 test.sh,内容为: ls pwd 然后运行下面的命令: $ ssh nick@xxx.xxx.xxx.xxx < test.sh ?...通过重定向 stdin,本地脚本 test.sh远程服务器上被执行。...要想在这种情况下(远程执行本地脚本)执行带有参数脚本,需要为 bash 指定 -s 参数: $ ssh nick@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld...执行远程服务器上脚本 除了执行本地脚本,还有一种情况是脚本文件存放在远程服务器上,而我们需要远程执行它! 此时在远程服务器上用户 nick 家目录中有一个脚本 test.sh

2.4K21

玩转企业常见应用与服务系列(十四):自动化运维工具 Ansible 基础入门

但是,Ansbile有一个显著特点,就是管理过程非常缓慢,这也是由于其基于SSH来进行远程管理特点决定。...,然后查看剧本任务,在根据剧本中一系列任务生成一个临时脚本文件,然后将该脚本文件发送给所管理主机,脚本文件在远程主机上执行完成后返回结果,然后删除本地临时文件。...inventory #管理主机清单文件路径 library #ansible模块存放目录 remote_tmp #上述工作原理中提到脚本发送至对端临时目录 local_tmp #上述工作原理中提到本地生成脚本存放临时目录...: src #被复制到远程主机本地文件。...", "file": "/root/test.sh", "md5sum": "35dcd724c02d10850a560df9129a1cf2" } cron模块 day #每天应该运行工作

37210

记一次在Windows10桌面环境搭建Jekins吐血经历

故事背景 最近在做一个简单数据采集项目,一开始只有一台远程主机,所以每次更新都是本地打包之后直接scp过去,然后再到目标主机上执行脚本。...但是最近数据量有所增加,所以必须增加新远程主机,所以现在有了2台机器,每次都是执行文件上传,然后再依次登录到每台主机上执行脚本。...: Cannot run program "sh" 显然,Windows下shell环境是cmd.exe,而上述打包命令并不能直接运行。...遗憾是通过Cygwin并不能安装scp命令,而微软PowerShell团队提供Win32-OpenSSH项目正好带了scp命令。...我尝试了很多次将本地Windows主机ssh公钥写到远程Linux主机~/.ssh/authorized_keys文件中,每次执行scp命令时依然需要手动输入密码。

1.7K10

Linux expect实现自动登录脚本实例代码

不能使用密钥验证时候,我们就没有办法了。所以,这时候只要知道对方机器账号和密码就可以通过expect脚本实现登录和远程命令。...引言 目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用连接...,我就写了一个简单脚本实现一键登录~ login.sh脚本内容如下: #!.../login.sh】配置别名alias,或移动到可执行目录中,即可实现【login】一键登录; expect是一个处理交互指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作...:发送指定字符串到spawn进程,代替标准输入; interact:用户参与交互; 对于login.sh执行过程为: 【spawn】启动一个新进程执行ssh登录指令,【expect】监听到标准输入提示信息

2.3K41

ansible安装

ansible介绍 背景: 传统运维基本工作: 系统安装(物理机、虚拟机) 程序包安装、配置、服务启动 对主机执行批量操作 程序发布、上线 系统监控、服务监控等 以上是一位运维工程师要做一些工作,当我们主机数量非常少时...ansible是一个批量部署自动化工具,通过ssh协议实现远程节点和管理节点之间通信,理论上说,只要能通过ssh登陆到远程主机上所做操作,ansible都可以做到。...好处: 无agent端,不用时便不占用主机资源 模块化,支持任何语言来开发自己所需模块 安全,基于ssh连接,因为ssh本身便是安全 学习曲线平滑、简单(需要Linux基础) 支持yaml格式,一种模板语言...,而不会在当前shell中运行 ansible all -m shell -a 'echo 123456 | passwd ansible --stdin' 10、script 1 2 script模块会把本地一个脚本远程服务器上执行...,这个模块会先把脚本发送到目标机器上,执行完之后脚本在目标机器就会被删除 ansible all -m script -a '/devilf/script/test.sh' 11、setup 从远程主机去收集一些系统信息

65121

自动化运维之Ansible服务部署详述

Puppet Pup基于Rpy开发,支持Linx、UNDX、 Windows平台,可以针对用户、系统服务配置文件、软件包等进行管理,有很强扩展性,远程执行命令相对较弱。 2....理论上说,只要管理员通过ssh登录到一台远程主机上能做操作,Ansible都可以做到。...是基于SSH协议进行通信,所以控制主机安装Ansible软件后不需要重启或运行任何程序,被管理主机也不需要安装和运行任何代理程序。...//查看下已经记录在SSH协议主机,不做任何修改操作 (2).编写shell脚本实现批量推送公钥 [root@01 .ssh]# vim ~/.ssh/pushssh.sh...]# sh pushssh.sh //执行脚本 PS:想要执行这个脚本,首先需要下载安装expect,同时被管理端主机密码需要是一致

1.1K20

Linux下使用SSH远程执行命令方法收集

如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本方式: 有些远程执行命令内容较多,单一命令无法完成,考虑脚本方式实现...远程执行内容在”<< eeooff“至”eeooff“之间,在远程机器上操作就位于其中,注意点: << eeooff,ssh后直到遇到eeooff这样内容结束,eeooff可以随便修改成其他形式...重定向目的在于不显示远程输出了 在结束前,加exit退出远程节点 执行本地脚本 我们在本地创建一个脚本文件test.sh,内容为: ls pwd echo $0 然后运行下面的命令: ssh root...@xxx.xxx.xxx.xxx < test.sh 带参数本地脚本 ssh root@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld 执行远程服务器上脚本...ssh root@xxx.xxx.xxx.xxx "/home/nick/test.sh" 执行远程服务器上带参数脚本 ssh root@xxx.xxx.xxx.xxx /home/nick/test.sh

4.9K21
领券