问题标签 [sshpass]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6175 浏览

linux - 使用 ssh 时如何避免为公钥输入密码

如果我想使用密码,我可以这样做:

但是 sshpass 似乎不适用于公钥。我尝试了以下命令,但失败了:

有什么好的方法吗?

0 投票
1 回答
471 浏览

bash - 使用公钥从 SFTP 位置下载文件

以前,我使用SSHPASS身份验证方法通过用户名/密码而不是公钥从 SFTP 服务器下载了 CSV 文件:

SFTP 服务器现在已经添加了公钥(在我的 Ubuntu 服务器上创建),所以我想更改上面的命令以在没有密码的情况下进行通信。我应该添加/删除哪些选项?

0 投票
2 回答
1318 浏览

git - 使用 rsync 和 gitlab-ci.yml 同步 Wordpress 主题文件夹

在尝试使用.gitlab-ci.yml自动将我的主题部署到我的生产服务器时,我收到一个错误:

执行的命令:使用ubuntu:16.04映像

错误结果:

我正在使用完全相同的.gitlab-ci.yml服务器、FTP 帐户、运行器和 gitlab 托管成功地在其他 git 存储库中自动部署。

唯一改变的是源 git 存储库和/project-folder/.

老实说,我不知道从哪里开始以及如何追踪这个问题,所以我很高兴有任何建议。

0 投票
1 回答
78 浏览

string - docker 容器 - ssh adduser passwd

我已经构建了一个脚本“createcontainer.sh”来自动创建一个容器。我调用脚本如下:

在脚本内部,两个参数被分配给变量,如下所示:

目标是创建容器(可行),使用我在原始映像中创建的“root/originalpassword”组合登录(可行),然后添加可用于访问容器的“newuser/newpass”凭据通过 SSH(这似乎有效,但实际上不起作用)。

createdocker.sh 内部是以下行:

这样做是告诉“createcontainer.sh”脚本使用root$ORIGINALPASSWORD登录到 $PORT 上容器的 $IP ,自动接受 SSH 主机密钥,然后执行 $SCRIPT,其定义如下:

结果,我的脚本的行为如下:

然后我尝试使用新凭据登录到容器:

我认为我的问题与我的引号(“)和这些引号中变量的评估有关。特别是在 SCRIPT 中以“echo -e”开头。

如果我实际上(没有脚本)手动登录到容器并发出以下命令,一切正常。我能够退出容器而不是使用 newuser/newpass 凭据重新登录,并且我可以很好地进入容器。

请注意,尽管 newpass\nnewpass 用引号 (") 括起来,而在 SCRIPT 中,整个字符串都用引号 (") 括起来,而不是特别是 echo -e 语句。如果有人可以建议如何解决此问题,那将对我有很大帮助。在此先感谢您的帮助。

0 投票
1 回答
168 浏览

java - 使用 JCraft Jsch - 执行 sshpass 命令不成功

需要从 machine1 建立到 machine2 的远程 ssh。使用 ssh.but 不成功尝试下面的代码。在 sshpass 请求之前和之后运行文件创建命令以进行验证。文件在 Machine1 中创建,但在 Machine2 中不起作用。请帮忙。有没有其他选择

0 投票
2 回答
20130 浏览

shell - 与 sshpass 一起使用时出现错误“sudo:不存在 tty 且未指定 askpass 程序”

我想编写一个脚本,我需要在192.168.0.2不输入密码的情况下从不同的机器获取文件的内容,所以我使用sshpass了以下命令:

输出 :

我明白了,因为我没有以root用户身份登录。所以我尝试了:

输出 :

我该怎么办?

0 投票
2 回答
4694 浏览

bash - 如何使用 sshpass 命令从远程机器获取退出代码

我想在不输入密码的情况下使用 bash 脚本列出远程机器上的文件。

我正在使用以下命令来做到这一点

我想从上述命令中获取退出代码,以了解我的命令 (ls /usr/local) 失败或通过。

怎么做?请帮助我

0 投票
1 回答
404 浏览

c - 使用 scp 和 sshpass 处理错误情况

我正在尝试实现用于文件传输的命令行界面命令,它将在内部调用

sshpass -p "密码" scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -r user@remote-machine:/home/QA.txt /home/faadmin/

这里错误处理没有正确发生,当我使用system().if 运行此命令时,如果路由不存在用于文件传输,或者有时文件未找到错误,它们会阻止 CLI 命令的执行。所以我在执行后检查返回值上面的 Linux 命令除了 0 和 1 之外没有显示。我怎样才能获得其他返回值?

0 投票
3 回答
1853 浏览

linux - 使用java启动远程进程

机器 A 使用连接到远程机器 Bsshpass并且远程机器 B 不能直接ssh访问,root所以我通过它连接到它user并使用sudo,并且我还禁用了user他何时使用的密码sudo su。当命令很简单时,例如ls -lrt /some/dir我得到了正确的命令输出,但是当我在远程机器上启动服务器/shell 脚本时(服务器不需要时间,而脚本需要 1 分钟运行),会显示输出但 bash 不返回恢复正常(即看起来它正在做一些工作,但我知道服务器已经启动/脚本已经完成)。

使用的命令:

以上工作正常,我得到输出并返回 bash,这样我就可以编写更多命令并做一些事情。

但是,上述操作并没有按预期工作。看起来它正在工作,但不是没有返回 bash,所以我无法进一步编写命令。

我不能共享脚本或服务器程序,因为它是公司的代码。但是服务器代码使用 UNIX 数据报套接字进行通信。

编辑1:

当我尝试

服务器程序正确启动,但脚本没有按预期工作并且没有返回 bash,但是当我按下ENTERbash 返回时,我知道这意味着什么,但不知道是什么。

编辑2:

我无法将输出重定向到文件,因为我不知道命令总共需要多少时间才能运行,它可能需要一分钟或几分钟。

编辑 3:

我发现了一些很有帮助的东西(我猜)。保留在该机器 B 上的脚本在后台创建了几个进程,因此sshpass直到所有这些后台进程从机器 B 手动终止后才会返回。一旦这些程序被终止,我们就会得到该输出以及 bash 返回.

编辑4:

该脚本创建 8 个在后台运行的 ppp 会话。

0 投票
0 回答
2548 浏览

bash - 通过 sshpass 传递多个命令

这是我的需要,我需要登录到服务器并以 root 身份执行命令。

这就是我写的:

问题是 VMQUERY 命令没有以 root 身份执行。任何解决方案都会有所帮助