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

scp - 如何启用 sshpass 输出到控制台

使用 scp 并以交互方式输入密码,文件复制进度将发送到控制台,但在脚本中使用sshpass以 scp 文件时没有控制台输出。

似乎 sshpass 正在抑制或隐藏 scp 的控制台输出。有没有办法让 sshpass scp 输出到控制台?

0 投票
4 回答
47727 浏览

windows - 如何通过 Cygwin 在 Windows 上安装 sshpass?

在 CygWin 的包窗口中,当我输入 sshpass 时,什么也没有出现。我尝试安装类似的软件包,如 openssh 等,希望其中一个包含 sshpass 但没有运气。

0 投票
1 回答
1188 浏览

shell - 如何在 shell 中使用 'if-fi' 为 sshpass 提供多行命令

上面的代码是我正在使用的 shell 脚本的一部分

问题 :

我面临的问题是我正在尝试执行一组命令以在远程 tomcat 服务器上部署 webapp,而我感兴趣的问题是我希望能够使用 sshpass 执行多行命令,但我是得到如下错误:

-bash:第 2 行:语法错误:文件意外结束

我正在为这个用例寻找一个工作示例,或者任何相关的帮助都会有很大帮助。

我从谷歌搜索结果中尝试了很多例子,但我无法做到

0 投票
2 回答
214 浏览

linux - 为新的 Hadoop 集群自动配置 SSH

猜测这已经做了很多次,但我找不到一个干净的答案,所以我呼吁您的专业知识以获得更好的解决方案:

目标: 我正在设置一个中等大小的 RHEL Hadoop 集群,并希望自动配置所有节点之间的 SSH 连接。在第一个节点上,我在文件“remote_ips”中有所有 IP 的列表,并且在文件“hduser_pw”(chmod 600)中有 hduser 密码。

步骤 1) 在每台主机上创建“hduser_pw”密码文件

for x in $(cat remote_ips); do sshpass -p$(cat hduser_pw) ssh -o StrictHostKeyChecking=no hduser@$x "echo $(cat hduser_pw) > hduser_pw; chmod 600 hduser_pw"; done

步骤 2) 为集群中的每个节点生成 RSA 密钥:

for x in $(cat remote_ips); do sshpass -p$(cat hduser_pw) ssh -o StrictHostKeyChecking=no hduser@$x "echo -e 'y'| ssh-keygen -t rsa -N \"\" "; done

步骤 3) 将文件“remote_ips”复制到集群中的每个节点:

for x in $(cat remote_ips); do sshpass -p$(cat hduser_pw) scp -o StrictHostKeyChecking=no remote_ips hduser@$x:~; done

步骤 4) 对于每个节点,将 RSA 公钥复制到每个其他节点的“authorized_keys”:

for x in $(cat remote_ips); do sshpass -p$(cat hduser_pw) ssh -o StrictHostKeyChecking=no hduser@$x 'for y in $(cat remote_ips); do cat /home/hduser/.ssh/id_rsa.pub | sshpass -p$(cat hduser_pw) ssh -o StrictHostKeyChecking=no hduser@$y '\''cat >> .ssh/authorized_keys'\'' ; done '; done

有一个更好的方法吗?非常感谢您的帮助。

编辑:这是我的修订:

我合并了来自@janos 和@likewhoa 的反馈——> 我通过重定向处理了 UUOC,在每个 IP 之间循环,使用变量从 shell 历史记录中删除了任何 pwd,等等。非常感谢!

0 投票
1 回答
898 浏览

shell - sshpass 退出自动化

我总共有 6 个 IP 地址,在 6 个 IP 地址中只有 2 个有效。我编写了一个 shell 脚本来使用 sshpass 来测试每个 IP。

问题是当脚本到达正在运行的 IP 时,它会记录在系统(Cisco 交换机)中并停留在那里,而不是继续循环以测试剩余的 IP。如果我在系统上键入“exit”而不是继续循环。

成功登录后,脚本如何从已登录的系统中自动退出并继续测试剩余 IP?

/usr/bin/sshpass -p $ADMINPASS ssh -oStrictHostKeyChecking=no -oCheckHostIP=no -t $ADMINLOGIN@$IP 退出

我可以使用退出状态来确定哪些 IP 有效,哪些无效。

0 投票
0 回答
53 浏览

bash - bash 脚本不作为 cron 作业运行

更新:脚本 A 已更新以反映 sshpass、scp、paxdiablo 和 Evert 的路径声明。因为这不能解决问题,所以我不相信这个问题是链接问题的重复。

我有一个 bash 脚本,我们称之为 A,它查找 15 分钟前创建的文件并将它们从服务器 1 移动到服务器 2。A 的代码是:

如果我从命令行运行代码,它会移动数据。但是,如果我创建了一个调用脚本的 crontab 文件,它就不会运行。

crontab 脚本内容如下:

要让 cron 调用脚本,我输入:

crontab -l 显示作业正在运行。我也知道 cron 本身正在运行,因为 generate_data.txt 每小时都会下载数据。因此,问题似乎不是孤立的 cron 或 bash,而是它们一起工作的问题。

这个问题似乎很常见,但是这里这里这里的建议没有帮助。我努力了:

  • 权限。两个文件的权限都是 755。
  • 把它放在 /etc/cron.hourly/ 没有 .txt 结尾。
  • 在文件末尾添加一个空行。
  • 调用“bash”和“/bin/bash”。
  • 重新启动 cron。

我使用 nano 编辑此脚本。服务器 A 是 Ubuntu 14.04 LTS,服务器 B 是 Amazon Linux AMI。两者都托管在 Amazon Web Services 上。

编辑:我应该补充一点,我在第三台服务器和服务器 B 之间运行了这个进程,它工作正常,即使用这些脚本将文件从服务器 C 发送到 B。服务器 C 是 Ubuntu 12.02 LTS,服务器 A 是 Ubuntu 14.04 LTS。

我错过了什么?

0 投票
1 回答
1812 浏览

linux - sshpass 远程命令和在远程机器中切换用户帐户

要求是对远程机器执行 ssh 并执行sudo su - "wasadmin/user" -c "whoami" 以了解 user1 是否对远程机器上的特定应用程序用户具有 sudo 访问权限。

我尝试了以下内容。但是,我的命令中缺少一些东西。请在上述情况下帮助我。

0 投票
2 回答
1496 浏览

bash - Linux - Bash 登录到机器然后成为 root

我正在尝试使用我的普通用户登录 Linux 机器,然后使用 bash 脚本成为 root。我的用户在 sudoers 文件中,因此它可以成为 root。

正常的过程如下:

我到处搜索以做到这一点,但我能找到的一切都不能完全满足我的需要。我也尝试使用 #!/usr/bin/expect 但它不起作用。

我的工作 bash (access.sh) 如下,但它在发出“sudo su -”命令后要求我输入密码

尝试 #1 - 当我尝试以下操作时,我得到“ /usr/bin/expect: No such file or directory

尝试 #2 - 结果相同

尝试#3 - 也不起作用。它在寻找匹配的 `'' 时给了我“意外的 EOF

我也不能做 "sshpass -p "$password" ssh root@$machine" 因为我的普通用户的密码与 root 的不同

我尝试了几乎所有的东西,但没有成功。

有任何想法吗?!!

0 投票
3 回答
90711 浏览

linux - sshpass:找不到命令错误

我正在尝试自动化从一台服务器到另一台服务器的文件传输或 FTP。

当我执行这个 shell 脚本时,我在 putty 中收到以下错误:

我尝试使用 ssh 无密码方法 by ssh-keygen -t dsa和其他步骤,但我无法访问第二台服务器的腻子,因此我无法执行后续步骤。

请帮助

0 投票
1 回答
657 浏览

bash - 与 sshpass 结合使用 ssh 上的 tar

我(非常)最近发布了这个关于 tar over ssh 的问题。

这个问题现在有了答案,我现在问一个不同的问题。

我运行以下命令将代码从本地计算机推送到运行它的服务器。

我知道使用ssh/scp我可以用它sshpass -p password来停止每次要求我输入密码的命令。请注意,我不能使用其他身份验证方法。

是否可以与我的上述命令结合sshpass使用,这样我就不必不断输入密码了?

换句话说,我应该如何编辑上述命令以包含sshpass,以便在每次运行上述命令时都不必输入密码?

编辑:注意以下确实有效

例如