问题标签 [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.
sshpass - sshpass 等待键盘输入
使用 sshpass 时如何让它等待键盘输入?
例如 sshpass -p mypassword ssh username@hostname
这将建立与主机的连接。
当我运行它时,我希望在将密码附加到主机后等待连接,直到我按键盘上的“输入”。
非常感谢
linux - ssh pass 安全吗?
我正在编写一个脚本来自动跨多个 Linux 系统运行特定命令。我将使用类似的东西:
是否会有安全问题?
kubernetes - scp 没有给出这样的文件或目录
我在这个容器中的 Linux 如下图所示:
我正在尝试使用 sshpass 命令执行一个简单的 scp,如下所示并遇到此错误。任何想法都非常感谢。请注意,我尝试了 scp 而不是 cp。事实上,这一行是在一个脚本中,我在 linux 命令行上尝试过,我得到了这个错误。我还尝试使用 ' 和 " 和 \ 以及所有组合来转义环境变量,但这似乎没有帮助。
如果我明确地使用这个命令,我可以让它工作,不知道为什么。请不要将这些输出中的主机名编辑为一些愚蠢的名称
我已经尝试了下面提供的答案,但没有奏效
我注意到的另一件事是,如果我在这个容器上执行 env,我会在环境变量中看到一个额外的行,这可能是一个问题。看看这个环境如何显示。请注意,我没有故意输入一行,当我输入 env 命令时,我看到 H_HOSTNAME 和 H_PARTITION 旁边的行很奇怪 H_PARTITION=Operator
bash - bash:找不到命令问题( sshpass )
我有machine A
和machine B
。从我的local machine X
,我想运行一个 bash 脚本,它将连接到Machine A
然后Machine B
检查包版本Machine B
。
现在,我已经安装了两个或更多的软件包Machine B
。
单包版本检查:
结果 :
多包检查:
结果 :
我无法获得第二个的软件包版本。使用sshpass
,我们可以传递多个命令在主机上运行吗?
预期结果 :
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"
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。
shell - shell:远程执行的方法的退出状态
我有一个脚本,它有 2 种方法。一种方法在远程机器上执行命令,第二种方法相应地采取行动。
但即使文件存在与否,它总是执行 run_local 方法。如果有人可以告诉我如何捕获方法的退出状态(如果它在远程机器上执行),那将会很有帮助。
shell - 命令未从远程 Windows 机器上的 shell 脚本运行:无法在远程系统中执行命令或 shell
我有一台 Windows 客户端计算机,我想从我的本地计算机(即 Mac)上调用该客户端上的 powershell 脚本。我通过 freesshd 在 Windows 上安装了 ssh。另外,我需要通过脚本提供密码,因此我最终使用了 sshpass。从我的 Mac 终端,同时命令:
完美运行并返回 shell 所在目录的内容,我无法从 shell 脚本中获得相同的结果。
简单的脚本如下:
我得到的是:
无法在远程系统上执行命令或 shell:无法执行进程。
我尝试了“和”的各种排列来获得正确的命令字符串,但无济于事。这里有什么问题?
jenkins - 在脚本中将 PASSWORD 凭据变量从 Jenkins 传递到 sshpass
我在 jenkins 中设置了一些全局凭据,用户名密码类型。
我现在必须将文件 scp 到管道内的目标服务器。
为了争论,假设我的密码变量是secretpassword。
有谁知道如何让密码与 sshpass 一起正常工作?
这是我正在尝试做的事情的要点
无论我尝试什么,我似乎都无法正确地将密码传递给 sshpass
如果我执行以下操作,它可以正常工作
所以我显然只是搞砸了如何让 PASSWORD 环境变量正确吐出到单引号中。
到目前为止,我似乎已经尝试了几千种选择,有人有什么好主意吗?
提前致谢
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”。即它没有作为参数传递。
我浏览了一些帖子,但没有一个解决了我的问题。