问题标签 [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.
scp - 如何启用 sshpass 输出到控制台
使用 scp 并以交互方式输入密码,文件复制进度将发送到控制台,但在脚本中使用sshpass以 scp 文件时没有控制台输出。
似乎 sshpass 正在抑制或隐藏 scp 的控制台输出。有没有办法让 sshpass scp 输出到控制台?
windows - 如何通过 Cygwin 在 Windows 上安装 sshpass?
在 CygWin 的包窗口中,当我输入 sshpass 时,什么也没有出现。我尝试安装类似的软件包,如 openssh 等,希望其中一个包含 sshpass 但没有运气。
shell - 如何在 shell 中使用 'if-fi' 为 sshpass 提供多行命令
上面的代码是我正在使用的 shell 脚本的一部分
问题 :
我面临的问题是我正在尝试执行一组命令以在远程 tomcat 服务器上部署 webapp,而我感兴趣的问题是我希望能够使用 sshpass 执行多行命令,但我是得到如下错误:
-bash:第 2 行:语法错误:文件意外结束
我正在为这个用例寻找一个工作示例,或者任何相关的帮助都会有很大帮助。
我从谷歌搜索结果中尝试了很多例子,但我无法做到
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,等等。非常感谢!
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 有效,哪些无效。
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。
我错过了什么?
linux - sshpass 远程命令和在远程机器中切换用户帐户
要求是对远程机器执行 ssh 并执行sudo su - "wasadmin/user" -c "whoami"
以了解 user1 是否对远程机器上的特定应用程序用户具有 sudo 访问权限。
我尝试了以下内容。但是,我的命令中缺少一些东西。请在上述情况下帮助我。
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 的不同
我尝试了几乎所有的东西,但没有成功。
有任何想法吗?!!
linux - sshpass:找不到命令错误
我正在尝试自动化从一台服务器到另一台服务器的文件传输或 FTP。
当我执行这个 shell 脚本时,我在 putty 中收到以下错误:
我尝试使用 ssh 无密码方法 by ssh-keygen -t dsa
和其他步骤,但我无法访问第二台服务器的腻子,因此我无法执行后续步骤。
请帮助
bash - 与 sshpass 结合使用 ssh 上的 tar
我(非常)最近发布了这个关于 tar over ssh 的问题。
这个问题现在有了答案,我现在问一个不同的问题。
我运行以下命令将代码从本地计算机推送到运行它的服务器。
我知道使用ssh
/scp
我可以用它sshpass -p password
来停止每次要求我输入密码的命令。请注意,我不能使用其他身份验证方法。
是否可以与我的上述命令结合sshpass
使用,这样我就不必不断输入密码了?
换句话说,我应该如何编辑上述命令以包含sshpass
,以便在每次运行上述命令时都不必输入密码?
编辑:注意以下确实有效
例如