Tag: net ssh

使用Ruby和net-ssh,如何使用Net :: SSH.start中的key_data参数进行身份validation?

我已经阅读了net-ssh文档,我仍然感到困惑。 我可以手动validation(使用ssh -i …),也可以将密钥放在文件中并使用:keys参数。 但是,我不想使用:keys参数,我想使用:key_data参数。 谁能举一个工作的例子? 由于某种原因,直接将字符串输入:key_data不起作用,并且它给出错误:“既不是PUB键也不是PRIV键::嵌套asn1错误”。 当然我用Google搜索了,它基本上告诉我要确保密钥是PEM格式的。 而且,当然是。 有任何想法吗? 如果需要,我可以提供更详细的信息……

在没有ssh-keygen的情况下生成SSH密钥对(私有/公共)

我正在研究需要生成SSH密钥对的Ruby / Rack应用程序。 尽管我想从应用程序调用ssh-keygen ,但我不能,因为它设计为在Heroku上运行,并且它们不支持调用该命令。 我已经能够在Ruby标准库中使用OpenSSL获取私有/公共RSA密钥,执行以下操作: key = OpenSSL::PKey::RSA.generate(2048) # => —–BEGIN RSA PRIVATE KEY—– …. key.public_key # => —–BEGIN RSA PUBLIC KEY—– …. 遗憾的是,RSA公钥和SSH公钥不是一回事,即使它们可以从相同的RSA密钥生成。 SSH公钥类似于以下内容: ssh-rsa AAAAB3NzaC1yc2EAAAABIwA….. 是否可以在不使用ssh-keygen情况下生成SSH密钥或将RSA密钥转换为Ruby中的ssh-keygen ?

输入密码后,Net :: SSH sudo命令挂起

我一直在尝试使用Thor编写一个小型库来帮助我快速创建新项目和站点。 我写了这个小方法: def ssh(cmd) Net::SSH.start( server_ip, user, :port => port) do |session| session.exec cmd end end 在需要时帮助我在远程服务器上运行快速命令。 问题是,当我需要在远程端的sudo下运行命令时,脚本似乎挂在我身上。 例如,当执行此…时 ssh(“sudo cp #{file_from_path} #{file_to_path}” ) 该脚本将提示我输入密码 [sudo] password for user: 但是输入之后整个事情就变成了笨蛋。 有人会碰巧知道为什么它会完全挂起,以及我可以做些什么来在Net :: SSH(或其他替代方案)下的远程服务器上运行sudo命令? *注意:在建议之前,我最初开始将这个库作为Capistrano下的食谱编写,直到我遇到Thor,并认为这是一个尝试它的好机会。 如果需要的话,我不反对将整个事情切换回Capistrano,但如果没有一种简单的方法在远程服务器上运行sudo命令,我会感到非常惊讶。