当前位置: 首页 > 面试题库 >

通过纯bash将密码传递给ssh

羊舌诚
2023-03-14
问题内容

我想通过sshbash脚本传递密码(是的,我知道我可以使用ssh密钥,但这不是我想要的)。

我发现了一些正在使用的解决方案expect但由于它不是标准的bash工具,所以我想知道是否可以使用管道来实现。

有人可以向我解释为什么是这样的:

echo "password\n" | ssh somehost.com

要么

ssh somehost.com <(echo "password\n")

不起作用?有可能使其工作吗?也许ssh以不同的进程执行,获取其PID,然后直接向其发送字符串?


问题答案:

由于我的问题没有确切的答案,因此我进行了一些调查,为什么当存在其他可行的解决方案时为什么我的代码不起作用,因此决定发布我发现的内容以完成本主题。
事实证明:

“ ssh使用直接的TTY访问来确保密码确实是由交互式键盘用户发出的。”
sshpass联机帮助页

回答了这个问题,为什么管道在这种情况下不起作用。显而易见的解决方案是创建条件,以便ssh“认为”它可以在常规终端中运行,并且由于可以通过简单的posix功能来实现,因此这超出了简单bash所能提供的范围。



 类似资料:
  • 问题内容: 我知道不推荐这样做,但是是否可以将用户密码传递给scp? 作为批处理作业的一部分,我想通过scp复制文件,接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。 问题答案: 您就可以使用一个工具脚本它预期(有得心应手绑定太像Pexpect的为Python)。

  • 本文向大家介绍bash脚本中将密码传递给ssh/scp命令方法详解,包括了bash脚本中将密码传递给ssh/scp命令方法详解的使用技巧和注意事项,需要的朋友参考一下 安装SSHPASS 对于大多数最新的操作系统,sshpass软件包在默认软件包存储库中可用。可以使用以下命令在系统上安装它。 在Debian上: $ sudo apt install sshpass 在CentOS上: $ yum

  • 问题内容: 我开始使用Grunt,并希望将变量传递给我通过exec运行的PhantomJS脚本。我想要做的是为脚本传递URL,以从中获取屏幕截图。任何帮助将不胜感激,谢谢! 达伦 咕script声脚本 screenshot.js 问题答案: 命令行参数可通过模块(Module )访问。第一个始终是脚本名称,然后是后续参数 该脚本将枚举所有参数,并将其写到控制台。 在您的情况下,解决方案是 咕unt

  • 问题内容: 我想知道是否有可能使用jQuery AJAX函数将数组传递给php函数。我有以下作为我的JavaScript 当我尝试执行以下操作时 我在PHP中将其作为“数组”接收。如何正确发送对象,以便PHP函数可以使用它? 问题答案: 从第二个ajax中,您可以根据属性名称访问数据,例如: 是在php中以关联数组转换的js对象

  • 问题内容: 我已经编写了一个脚本来从中检索某些值。如果将值提供给jq ,它将起作用,但是该变量似乎不起作用(或者我不知道如何使用它)。 问题答案: 还考虑将shell变量(EMAILID)作为jq变量传递(为便于说明,此处也称为EMAILID): 后记 作为记录,另一种可能性是使用jq 函数访问环境变量。例如,考虑以下bash命令序列: 输出是一个JSON字符串:

  • 问题内容: 我正在尝试编写一个bash脚本,该脚本允许用户使用通配符传递目录路径。 例如, 在此目录中执行时 将输出: 现在的样子,它输出: 的内容: 问题答案: 父外壳(一个调用)为您扩展了外壳。 在脚本中,您需要使用: 双引号确保正确处理文件名中的多个空格等。 可能令人困惑的附录 如果您确实确定要扩展该脚本,则必须确保将其传递给脚本(如其他答案中所述,用引号引起来),然后确保在正确的位置将其扩