【问题标题】:sshpass, permission denied, please try againsshpass,权限被拒绝,请重试
【发布时间】:2022-11-09 00:49:48
【问题描述】:

我知道这个问题已被多次提出(https://superuser.com/questions/606252/how-to-use-sshpass-for-chained-connectionhttps://unix.stackexchange.com/questions/320412/how-to-use-sshpass-to-supply-a-password-on-the-second-ssh-hop),但我发现的所有解决方案都不起作用。 我正在尝试使用 sshpass 访问第三台机器(third@machine),以免被提示插入密码。但是,在进入决赛之前必须使用桥接机(bridge@machine)。 每次我需要输入bridge@machine和third@machine的密码,所以我的工作流程是:

ssh 网桥@机器

插入密码:

ssh 第三@机器

插入密码

到目前为止,我可以通过在 ~.ssh/config 文件中的 proxycommand 中使用 sshpass 来避免使用第一个密码,如下所示:

vi ~.ssh/config :

Host *.reference
User example_user
ProxyCommand sshpass -p $bridge_machine_password$ ssh -o StrictHostKeyChecking=no bridge@machine "nc -w 60 `basename %h .reference` %p"

和当代我在 .bashrc 文件中定义了一个名为“curie”的别名:

别名居里='ssh third@machine.reference'

因此,如果运行别名 curie,我可以避免使用第一个密码,但仍会提示我输入第三个@machine 的密码。

出于这个原因,我尝试使用 sshpass 通过以下方式访问 third@machine:

>sshpass -p 'third_machine_password' ssh -oProxyCommand="ssh -W %h:%p bridge@machine" third@machine

不幸的是,这回馈了:

Permission denied, please try again.

可能是第三个@machine 施加的限制,或者我做错了什么?

【问题讨论】:

    标签: ssh proxy bridge sshpass


    【解决方案1】:

    寻找解决方案:

    首先在配置文件中创建代理命令

    Host *.reference
      User bridge
      ProxyCommand sshpass -p passwd_bridge_machine2 ssh -o StrictHostKeyChecking=no bridge@machine2 "nc -w 60 `basename %h .ciment` %p"
    

    在配置中设置此命令后,我在 .bashrc 文件中创建了别名:

    alias curie='sshpass -p passw_third@machine3 ssh third@machine3.reference'
    

    添加 .reference 行很重要,因为它会首先调用配置文件中的代理命令,然后使用别名中的 sshpass。一旦一切都解决了,只需要在终端中运行别名即可打开第三台机器而无需任何密码。

    希望它帮助别人

    【讨论】:

      【解决方案2】:

      如果您的密码包含特殊字符,例如 $... 例如 abcd@1234$$ 然后与特殊字符一起使用....在每个 $$ 之前添加它....它对我有用

      【讨论】:

        猜你喜欢
        • 2013-06-29
        • 1970-01-01
        • 2020-06-24
        • 2015-08-30
        • 1970-01-01
        • 2019-09-20
        • 2018-07-19
        相关资源
        最近更新 更多