问题标签 [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.
deployment - Gitlab CI 自动部署使用 rsync 和 sshpass
我在 gitlab-ci 上的自动部署有问题。我想将文件从 docker run on runner 发送到远程主机(我的站点托管)。我.gitlab-ci.yml
的是这样的
但是当我尝试使用这种配置时,我得到了错误
rsync: Failed to exec theme/: Permission denied (13)
rsync error: error in IPC code (code 14) at pipe.c(85) [Receiver=3.1.2]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
ERROR: Job failed: exit code 1
我不知道如何正确配置它。我必须通过 sshpass 进行身份验证,因为我的服务器不允许 rsa 身份验证。
bash - su 的 sshpass / 使用 su 非交互方式
我让 Jenkins 在功能帐户上运行。
有时我需要在几个只能从代理服务器访问的盒子上运行“echo blabla”。在这种情况下,詹金斯运行:
太好了,因为我提供了 userJumpServerPassword 和用户名,然后它使用存储在代理服务器上我的个人帐户中的私钥登录到 root@targetBox。userJumpServerPassword 被屏蔽,所以请忽略这方面。
我指的另一种情况是访问不在代理后面的服务器。我想做这样的事情:
强制 Jenkins 在 localhost 上切换到我的个人帐户,然后使用私钥连接到目标框(无密码)。
这是我的问题。没有像 supass 这样的东西允许以非交互方式使用 su。有没有绕道?使用 ssh 连接到 localhost 听起来很有趣。
bash - 带有期望的 Bash 脚本。为多块测试板设置参数
我正在为学校做一个小项目。我正在使用 15 个左右的调谐器来模拟 Cell 网络。我还没有精通脚本。我是一名 EE,通常会在我有一些能够满足我的目的的 frankencode 之前使用谷歌搜索。
目标是快速设置所有模块,所以我想用脚本自动化这个过程。这需要 ssh,到目前为止,我每次都必须手动输入密码。今天早上我用 Expect 和 sshpass 设置了一个基本测试。在任何一种情况下,我都可以正确登录,但不能向远程机器发出指令。
我正在阅读 sshpass 发送远程指令有困难,如果我错了,请纠正我。
我在这里尝试了一些方法来让设备接收指令
bash - 使用 sshpass 登录远程机器并执行 .sh 文件
我正在使用这个命令
sudo sshpass -p '' ssh @ /home/ubuntu/sample.sh
我收到 sudo: no tty present and no askpass program specified sample.sh 脚本没有运行。
我什至厌倦了使用下面的
sshpass -p '<password>' sftp -o StrictHostKeyChecking=no -o HostKeyAlgorithms=+ssh-dss <username>@<ip> <<EOF
cd /home/ubuntu
./sample.sh
EOF
任何帮助,将不胜感激
bash - 登录成功后执行 Bash 脚本不会触发
我可以使用 bash 脚本从本地成功登录到远程服务器。登录成功后,执行完一行后,脚本不运行执行其他行。我该怎么做才能让它执行脚本到底?
python - 如何使用python知道复制过程(scp)是否完成?
我有一个用于日志分析的 python 程序。该日志位于另一个具有端口号和密码的服务器中。
我无法将我的 python 代码存储在该服务器中。所以我需要将文件 scp 到存储我的程序的服务器上。
我这样做了:
但是如果文件很大,程序将在完成复制过程之前运行。
bash - bash 脚本中的 sshpass 手动工作,但不适用于 cron
我在尝试在要由 cron 启动的 bash 脚本中启动 sshpass 时遇到问题。
我对 cron 进行编程:
4 14 14 1 1 /Users/manuel/Downloads/prueba.sh
prueba.sh 有这样的内容:
然后我得到:
/Users/manuel/Downloads/prueba.sh: line 3: sshpass: command not found
但是,如果我在终端中手动启动脚本,它就可以工作。怎么了?
我尝试使用 sshpass 的完整路径(/usr/local/bin/sshpass)
和参数StrictHostKeyChecking=no
。我不知道我的错误是什么。
谢谢。
python - Python SSH 通过不同路径迭代
我有一个如下所示的 JSON 对象:
对 jumpboxes 的身份验证是通过 kerberos(无密码),对主机的身份验证是使用密码,并且主机只能通过跳转主机可见。我不知道 IP 列表中哪些有效,哪些被卡住或无响应等,所以我需要找到第一个可以让我打开 SSH 会话的路径。
我可以做的是在 ssh-ing 到跳转主机时检查退出代码,如下所示:
这为我提供了第一个正常工作的 jumpbox ip,但是拥有与第二台主机建立 ssh 连接的密码并不容易检查其退出代码。
有多种方法可以打开隧道 - 使用 os.system() 和使用 sshpass 和会话代理(类似于:(
if os.system('sshpass -p {} ssh -o ProxyCommand="ssh {}@{} nc {} 22" {}@{} -t {}'.format(password, user, jumpip, hosts[j], user, hosts[j], remote_cmd))>0:....
对于上下文,我们假设 sshpass 命令看起来像这样:sshpass -p Password123! -o ProxyCommand="ssh user@jumpbox nc hostip 22" user@hostip -t ll
或者在子shell中使用一些东西做 pint喜欢os.system('ssh user@jumpbox -t ping {} -c 5'.format(hosts[j]))
,虽然 ping 会返回一个退出代码,但 ICMP 回显回复并不意味着我能够打开一个隧道(例如,守护进程可能被卡住或可能已经崩溃等),或者我可以做一个 try-except -else 块,它尝试通过带有 pexpect 或 subrpocess.popen 并通过管道传输 stdio 的跳转框打开与远程主机的 ssh 会话,从而允许我推送密码,如果未能引发自定义异常,但我可以不知道如何从 ssh 客户端获取退出代码,所以我可以检查状态...
这些对我来说都不够健壮,所以我宁愿正确地遍历 IP,我愿意接受建议。
一点背景知识 - 隧道将用于启动 nohup-ed 命令,然后将被关闭。该脚本使用多处理和池来处理一大堆这些,所以我将启动它们,然后有一个循环来检查它们的状态并检索在主机上执行的远程脚本的结果。我知道 os.system 已被弃用,我应该使用子进程,但这对于用例来说不是必需的,所以我并不真正关心这一点。我正在寻找一种聪明的方法来遍历可能的路径,这些路径将采用给定一个带有长度的跳转框n
列表和一个带有长度m
和超时x
秒数的主机列表,最大n*m*x
秒数以找出并缩短该时间。
一旦我找到了打开隧道所需的正确 IP,我还使用 pexpect(它本身使用 paramiko)与远程主机进行交互。
提前致谢!
macos - 'Connection' 对象在 macOS 上没有属性 'ssh' ansible?
我正在尝试在 ansible playbook 中运行一项任务,如下所示。
我正在使用 macOS 并且已经安装了 ansible 和 sshpass。我可以在远程 linux 机器上通过 ansible 运行不同的任务,但是当运行这个组任务时,我收到错误为'Connection' object has no attribute 'ssh' ansible
.
请指导我可能是什么问题?
编辑:追溯问题
编辑:
我被要求检查ansible.cfg
文件。但我无法在 mac 上找到此文件。
以下是我使用ansible --version
命令时的日志
可靠的 2.7.6
配置的模块搜索路径 = [u'/Users/dhiraj/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python 模块位置 = /Library/Python/2.7/site-packages /ansible 可执行位置 = /usr/local/bin/ansible python 版本 = 2.7.10(默认,2017 年 7 月 15 日,17:16:57)[GCC 4.2.1 兼容 Apple LLVM 9.0.0 (clang-900.0.31) ]