【问题标题】:How to stop authentication of host message from coming up.如何阻止主机消息的身份验证出现。
【发布时间】:2014-07-29 16:30:48
【问题描述】:

我正在编写一个脚本来登录多个 Cisco 路由器。我遇到了问题。每次都会弹出此消息。 "无法确定主机'x.x.x.x(x.x.x.x)'的真实性 RSA密钥指纹是X。确定要继续连接(是/否)?

从我所读到的所有内容来看,这是第一次进入它是正常的,但它应该存储 RSA 密钥并且不再显示此消息。有没有办法阻止这个消息弹出?

这是我目前的代码。

#!/usr/bin/expect -f 
spawn ssh -l user x.x.x.x

sleep 3

expect "*word"

send "mypassword"
send \r

【问题讨论】:

    标签: bash ssh


    【解决方案1】:

    将以下内容添加到您的 ssh 选项中:

    -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
    

    【讨论】:

    • 或者@TylendelZollmann,您连接的用户ID 是否有/home/userID/.ssh 目录?如果可以的话,请尝试制作。然后你应该会看到一个文件known_hosts 出现在那里。祝你好运。
    • 谢谢!这样做了,但现在它给出了将路由器永久添加到已知主机列表的警告。然后转到密码:并退出。为什么它无法识别我的密码发送命令?
    【解决方案2】:

    或者,为了避免主机密钥验证并且不对特定远程计算机使用known_hosts 文件,您还可以将以下内容添加到/etc/ssh/ssh_config

    Host remote_machine_ip
        StrictHostKeyChecking no
        UserKnownHostsFile=/dev/null
    

    /etc/ssh/ssh_config - 全局配置
    $HOME/.ssh/config - 用户特定配置

    【讨论】:

      【解决方案3】:

      您可以预期会出现该提示,并实际回答它:

      spawn ssh -l user x.x.x.x
      
      expect {
          "connecting (yes/no)" {send "yes\r"; exp_continue}
          "password:"           {send "mypassword\r"}
      }
      

      exp_continue 基本上是一个循环,这样你就可以一直等待密码提示。
      如果没有出现“正在连接”提示,没问题:expect 会看到密码提示并继续。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 2020-08-22
        • 1970-01-01
        • 2012-08-15
        相关资源
        最近更新 更多