ruby - 在 ruby​​ 中调用 bash 时如何提供 key

标签 ruby bash ubuntu ssh

使用 Ruby 我试图通过执行以下操作从另一台机器上的文件中获取内容:

run_this = `ssh user@thecomputer cat myfile.txt`

问题是第一次运行时,它正在等待引入"is"或“否”:

The authenticity of host 'thecomputer (11.12.134.46)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?



我需要在没有人工干预的情况下自动提供"is"

我该怎么做?

最佳答案

run_this = `ssh -oStrictHostKeyChecking=no user@thecomputer cat myfile.txt`

如果没有关闭 StrictHostKeyChecking 选项,ssh 通常默认不信任任何新主机,如果有新主机,它将以交互方式提示用户,否则它将失败。

你遇到的问题很常见。例如,这里有人试图用 rsync 解决这个 ssh 行为:

Bypass Rsync Prompt "Are you sure you want to continue connecting"

关于ruby - 在 ruby​​ 中调用 bash 时如何提供 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131769/

相关文章:

javascript - 通过 AJAX 更新 Rails 模型?

sql - Ruby on Rails,缺少表 "pages"的 FROM 子句条目

python - Python 相对于 Ruby 的限制 : lambda's

bash - bash 中带有变量、大括号和散列字符的 ${0##...} 语法是什么意思?

php - 更新 chef php cookbook 的 php 版本

objective-c - 通过RubyCocoa调用外部shell应用程序

bash - 使用 cut 命令从右侧提取的代码?

bash - 从标准输入解码多个 base64 字符串

ubuntu - yii2 在 ubuntu 中显示空白页

linux - Docker 中的纯数据容器如何获取数据?