【问题标题】:SSH in shell script with password带有密码的shell脚本中的SSH
【发布时间】:2011-09-05 17:18:08
【问题描述】:

我想写一个类似的shell脚本

command1    
ssh vivek@remotehost 
    fire command on remote host

现在我在 pass.txt 中有密码。但是当我用文件更改标准输入时。它不是从文件中读取密码。

script.sh < password.txt 

提示输入密码而不是从文件中读取密码。 我做错了什么?

第二个问题是 shell 脚本没有显示触发的命令。有没有办法,我可以从中显示触发的命令?

注意: 我在远程系统上没有基于密钥的访问权限。我只能对 ssh 使用基于密码的登录。

【问题讨论】:

  • 您是否有意将远程 ssh 服务器设置为 deny 基于密钥的授权,或者您无法写入 $HOME/.ssh 目录?这是我能想到的为什么你不能使用钥匙的唯一两种方式......
  • 我没有写入 $HOME/.ssh 的权限。

标签: shell ssh


【解决方案1】:

您可以使用 ssh-agent 或 expect(编程语言)来执行此操作。

【讨论】:

    【解决方案2】:

    OpenSSH ssh 不会从 stdin 而是从 /dev/tty 读取密码。这就是为什么您必须使用 Expect 或其他类似工具来自动化它的原因。

    plink 是另一个客户端,也可用于 Linux/Unix,它在命令行上接受密码作为参数......虽然这有一些丑陋的安全隐患。

    【讨论】:

      【解决方案3】:

      好的,只提另一个选项:sshpass 是专门为“欺骗”常规 openssh 客户端以非交互方式接受密码的任务而开发的工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        • 2021-12-14
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 2022-11-06
        • 2012-04-28
        相关资源
        最近更新 更多