问题标签 [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 投票
1 回答
244 浏览

sshpass - sshpass 等待键盘输入

使用 sshpass 时如何让它等待键盘输入?

例如 sshpass -p mypassword ssh username@hostname

这将建立与主机的连接。

当我运行它时,我希望在将密码附加到主机后等待连接,直到我按键盘上的“输入”。

非常感谢

0 投票
2 回答
1766 浏览

linux - ssh pass 安全吗?

我正在编写一个脚本来自动跨多个 Linux 系统运行特定命令。我将使用类似的东西:

是否会有安全问题?

0 投票
2 回答
931 浏览

kubernetes - scp 没有给出这样的文件或目录

我在这个容器中的 Linux 如下图所示:

我正在尝试使用 sshpass 命令执行一个简单的 scp,如下所示并遇到此错误。任何想法都非常感谢。请注意,我尝试了 scp 而不是 cp。事实上,这一行是在一个脚本中,我在 linux 命令行上尝试过,我得到了这个错误。我还尝试使用 ' 和 " 和 \ 以及所有组合来转义环境变量,但这似乎没有帮助。

如果我明确地使用这个命令,我可以让它工作,不知道为什么。请不要将这些输出中的主机名编辑为一些愚蠢的名称

我已经尝试了下面提供的答案,但没有奏效

我注意到的另一件事是,如果我在这个容器上执行 env,我会在环境变量中看到一个额外的行,这可能是一个问题。看看这个环境如何显示。请注意,我没有故意输入一行,当我输入 env 命令时,我看到 H_HOSTNAME 和 H_PARTITION 旁边的行很奇怪 H_PARTITION=Operator

0 投票
2 回答
1086 浏览

bash - bash:找不到命令问题( sshpass )

我有machine Amachine B。从我的local machine X,我想运行一个 bash 脚本,它将连接到Machine A然后Machine B检查包版本Machine B

现在,我已经安装了两个或更多的软件包Machine B

单包版本检查:

结果 :

多包检查:

结果 :

我无法获得第二个的软件包版本。使用sshpass,我们可以传递多个命令在主机上运行吗?

预期结果 :

0 投票
1 回答
2229 浏览

ssh - 带有 proxycommand 的 sshpass 返回而不运行任何东西

在我们的环境中,我们有几台服务器在生产中。每次我想搜索某些东西时,它可能在 4 个不同的服务器中的 1 个中。我正在创建一个脚本来自动执行此搜索,以便我直接知道涉及哪个服务器。

我正在通过 jumphost 连接。

到目前为止,以下命令工作正常:

$ ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

现在,因为我必须运行几次,所以我正在寻找一种只需要使用一次密码的方法。

jumphost 和服务器都需要相同的密码,并且公钥不是一个选项(不允许,我真的做不到)。

我一直在阅读有关sshpass的信息,并且正在尝试这样做:

$ sshpass -p password ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

(我知道 -p 不安全,一旦我成功完成这一步,就会使用 -e of -f )。

当我这样做时,我可以登录两个系统,但在我看到 ls 的结果之前命令返回。我试图让 ssh 的-t选项没有任何成功。

我还尝试了ssh 的-J选项,结果相同(命令返回而不返回任何结果)。

$ sshpass -p password ssh -J user@jumphost user@server "ls"

有什么建议么?

编辑:

解决方案是使用 sshpass 两次:

$ sshpass -p password ssh -oProxyCommand="sshpass -p ssh -W %h:%p user@jumphost" user@server "ls"

0 投票
1 回答
1308 浏览

linux - 获取使用 sshpass 启动的远程进程的 PID

我有一个 bash 脚本,它需要在远程机器上启动一些进程。我已经使用sshpass命令完成了。

我需要存储该远程进程的 PID。

我用脚本尝试了以下操作:

sshpass -p password ssh user@ipaddr /bin/bash << EOF nohup process > /dev/null 2>&1 & echo $! > pid_file cat pid_file EOF

当我检查远程机器时,该进程已启动,并且 pid_file 中也写入了一个数字。但是进程id和pid_file的数量不匹配。

在没有脚本的情况下直接在终端上执行上述命令集,不会在 pid_file 中写入任何内容。

有人可以帮助存储远程进程的正确 pid。

0 投票
1 回答
54 浏览

shell - shell:远程执行的方法的退出状态

我有一个脚本,它有 2 种方法。一种方法在远程机器上执行命令,第二种方法相应地采取行动。

但即使文件存在与否,它总是执行 run_local 方法。如果有人可以告诉我如何捕获方法的退出状态(如果它在远程机器上执行),那将会很有帮助。

0 投票
0 回答
605 浏览

shell - 命令未从远程 Windows 机器上的 shell 脚本运行:无法在远程系统中执行命令或 shell

我有一台 Windows 客户端计算机,我想从我的本地计算机(即 Mac)上调用该客户端上的 powershell 脚本。我通过 freesshd 在 Windows 上安装了 ssh。另外,我需要通过脚本提供密码,因此我最终使用了 sshpass。从我的 Mac 终端,同时命令:

完美运行并返回 shell 所在目录的内容,我无法从 shell 脚本中获得相同的结果。

简单的脚本如下:

我得到的是:

无法在远程系统上执行命令或 shell:无法执行进程。

我尝试了“和”的各种排列来获得正确的命令字符串,但无济于事。这里有什么问题?

0 投票
2 回答
2047 浏览

jenkins - 在脚本中将 PASSWORD 凭据变量从 Jenkins 传递到 sshpass

我在 jenkins 中设置了一些全局凭据,用户名密码类型。

我现在必须将文件 scp 到管道内的目标服务器。

为了争论,假设我的密码变量是secretpassword。

有谁知道如何让密码与 sshpass 一起正常工作?

这是我正在尝试做的事情的要点

无论我尝试什么,我似乎都无法正确地将密码传递给 sshpass

如果我执行以下操作,它可以正常工作

所以我显然只是搞砸了如何让 PASSWORD 环境变量正确吐出到单引号中。

到目前为止,我似乎已经尝试了几千种选择,有人有什么好主意吗?

提前致谢

0 投票
0 回答
58 浏览

linux - 将参数从一个批处理文件传递到另一个不工作

我想登录到一个 Linux 环境,比如 ENV1 并从 ENV1 运行命令,以自动将文件从 ENV1 复制到 ENV2。

当我使用以下命令时,一切正常。

我正在运行“BATCH_FILE.bat”,它从“COMMANDS_TO_RUN_IN_LINUX.bat”文件中读取命令,将文件从 ENV1 复制到 ENV2。

BATCH_FILE.bat 文件内容如下:

COMMANDS_TO_RUN_IN_LINUX.bat 内容如下:

现在问题来了,我希望用户同时传递环境 ipaddress(ENV1 和 ENV2)而不是硬编码,为此我修改了以下命令:

修改 BATCH_FILE.bat 文件内容如下:

COMMANDS_TO_RUN_IN_LINUX.bat 内容如下:

我在从命令行运行 BATCH_FILE.bat 时传递了 ENV1 详细信息,它工作正常并且正在登录 ENV1。

但我现在不知道要通过 ENV2,它反过来将取代 %2。

我尝试使用 %1 来检查参数 %1 是否从 BATCH_FILE.bat 传递到 COMMANDS_TO_RUN_IN_LINUX.bat,然后它将文件从 ENV1 复制回 ENV1。

但这也给了我一个错误“未知主机%1”。即它没有作为参数传递。

我浏览了一些帖子,但没有一个解决了我的问题。