gpt4 book ai didi

ruby - 如何获取 ssh 命令的输出?

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:02 24 4
gpt4 key购买 nike

我想以编程方式检查是否有人为 GitHub 正确设置了 SSH key 。我知道我可以在 Ruby 中使用 `ssh -T git@github.com`。但是,我想将 ssh 输出保存在一个变量中。

我当前的代码是:

github_response = `ssh -T git@github.com`
unless github_response.start_with?('Hi')
puts 'Please set up your GitHub ssh keys'
end

`ssh -T git@github.com` 输出响应(以“Hi”开头)。但是 github_response 变量是 nil

如何将 `ssh -T git@github.com` 的输出分配给 github_response

最佳答案

您的示例失败,因为 您好 xxx!您已成功通过身份验证.... 消息不是来自 stdout,而是来自 stderr。

> require 'open3'
=> true
> stdin, stdout, stderr, wait_thr = Open3.popen3('ssh -T git@github.com')
=> [#<IO:fd 8>, #<IO:fd 9>, #<IO:fd 11>, #<Thread:0x007f89ee1149a8 sleep>]

> stdout.gets
=> nil
> stderr.gets
=> "Hi halfelf! You've successfully authenticated, but GitHub does not provide shell access.\n"

关于ruby - 如何获取 ssh 命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com