问题标签 [net-ssh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - ruby on rails ssh 连接检查有效性
如果连接建立成功,我正在控制器中建立 ssh 连接并显示视图。如果未建立连接,我需要我的操作重定向到“denied_access”视图这是我的视图,其中用户输入了他的详细信息:
控制器中的检查有效性操作:
此处连接已建立,正在检查结果中的 Informatica Developer 字符串并重定向到display_command_list_path
. 但是我想在检查这个字符串之前检查连接是否建立,如果连接没有建立,则重定向到 denied_access_path。我怎样才能做到这一点?
ruby - 使用 Net::SSH (Ruby) 进行多个 SSH 跃点
所以这是我的设置:
笔记本电脑 -> 主机 1 -> 主机 2 -> 主机 3
笔记本电脑可以访问主机 1,但不能访问主机 2 或主机 3
主机 1 可以访问主机 2,但不能访问主机 3
主机 3 可以访问主机 2,但不能访问主机 1
我要做的是设置远程转发,以便将在主机 3 上运行的进程路由到笔记本电脑上正在运行的服务。我已使用以下代码成功完成此操作:
从笔记本电脑运行:
在一个线程中,我正在设置从笔记本电脑到主机 1 的远程转发,然后从主机 1 到主机 2 的另一个远程转发。在一个单独的线程中,我正在启动从笔记本电脑到主机 3 的另一个连接,然后运行本地从主机 3 转发到主机 2。
我可以从笔记本电脑连接到主机 3 的唯一方法是因为我的 .ssh/config 文件,当我尝试从笔记本电脑连接到主机 3 时,它会自动路由我通过主机 1 和主机 2。
我想要做的是切断我从笔记本电脑连接到主机 3 的第二个线程,以便我可以删除对 .ssh/config 文件的依赖。我想从第一个线程中完成所有连接。
所以基本上我需要做来自笔记本电脑的多个跃点。我可以启动从笔记本电脑到主机 1 的第一个连接,然后在主机 1 上执行命令,但之后我无法再进一步。我需要做的是启动从笔记本电脑到主机 1 的连接,在主机 1 上设置转发,从主机 1 连接到主机 2,然后在主机 2 上设置第二个转发。
这可能与net / ssh有关吗?
谢谢你的帮助!
ruby - 杀死 pid 从 gem net-ssh 开始
如果您使用 net/ssh gem 在远程服务器中启动命令,并且该命令处于死锁状态,如何找到远程服务器中运行的进程的 pid 并杀死它?
net/ssh gem 支持这个吗?
ruby - ruby net-ssh 使用交互式提示调用 bash 脚本
我有一个问题希望你能帮助我
我正在尝试使用 ruby ssh 到机器上并运行 bash 脚本,这部分相当简单,但是 bash 脚本要求我以交互方式输入用户名和密码,这就是我卡住的地方
因此,如果我手动运行脚本,我会看到:-
所以在输入用户名提示我必须输入用户名等
我有一个简单的方法来建立连接,我的想法是传入一个由
但我不知道如何扩展 Net::SSH 调用以响应提示
任何人都有任何想法
ruby - Ruby Net::SSH 在 PTY 中获取退出状态
我正在尝试将一些功能写入我的项目的 Net::SSH::Telnet 库。具体来说,我需要能够读取我编写的任何命令的退出状态。
这是我正在修改的 Net::SSH::Telnet 库的原始来源
现在这是我所做的更改:
问题是当我运行它时,@exit_code 变量永远不会从 nil 改变。
我这样做的原因是因为我需要三个主要功能: 1. 有状态(交互式)通信(这样如果我 cd 进入一个目录,下一个命令将出现在该目录中) 2. 读取退出状态的能力我执行的任何命令 3. 响应提示的能力
我选择 Net::SSH::Telnet 进行调整,因为它已经提供了 1 和 3。我想我可以修复它以支持数字 2。
如果有人能看到如何解决这个问题,我将不胜感激。Net::SSH::Telnet 其余部分的来源在这里:
https://github.com/jasonkarns/net-ssh-telnet/
我有一个 repo 的分叉版本,我很乐意接受拉取请求。
https://github.com/0x783czar/net-ssh-remotescript
此外,如果有人对提供这三个功能的任何其他 ruby 库有任何建议,我将不胜感激。
ruby - 如何通过 ruby net-ssh 访问 bin 文件夹中的命令?
我正在使用 net-ssh 连接到我的服务器并且需要运行一些 ruby 命令。
以下不起作用:
我总是需要指定完整路径:
这对于一般的其他命令(rvm 等)也是如此。
是否有任何选项可以加载 bin 文件夹中的命令?
ruby - 在多个 SSH 隧道上运行 MySQL 查询?
我的情况有点类似于“如何在 ruby 中创建 ssh 隧道,然后连接到远程主机上的 mysql 服务器”。
在我的本地机器上,我想对生产 MySQL 数据库主机运行查询。我的本地机器无法直接连接到数据库主机。但是,如果我通过 SSH 连接到网关机器,我可以运行 MySQL 客户端并连接到数据库主机。
我试图弄清楚如何以编程方式从我的机器运行一个查询,该查询被转发到网关机器,网关机器将其转发到数据库服务器,并返回结果。基本上我想要LOCAL => GATEWAY => DB_HOST
转发。
我有一个在命令行上运行ssh.exec
和 MySQL 的 hacky 解决方案,如下所示,但是,我正在尝试找到一种进行两次端口转发的方法。我试过了,但到目前为止还没有成功。
有什么建议么?
rvm - 如何通过 net-ssh 在服务器上创建 RVM 环境?
我有一个脚本,它正在我的服务器上安装 Ruby/RVM(以及更多),以准备好部署 Rails 项目的环境。该脚本在 ruby 中,并使用 net-ssh 库来完成这项工作。
在安装了 RVM、Ruby 之后,我想创建项目 Gemset:
我在下面创建了我的 gemset,一切都很好:
/usr/local/rvm/gems/ruby-1.9.3-p286@my_project_name
这是我的 rvm/ruby 的 Capistrano 设置:
当我尝试使用 capistrano 进行部署时,我得到:
/usr/local/rvm/environments/ruby-1.9.3-p286@my_project_name:权限被拒绝
该文件夹中实际上缺少环境文件“ruby-1.9.3-p286@my_project_name”。我需要登录服务器并导航到我的项目,以便 .rvmrc 文件触发环境的创建(rvm --create my_project_name)。我想避免这最后一步。你知道如何触发这个环境的创建吗?(我虽然在创建 Gemset 时会创建它)
ruby - Ruby:Net::SSH::Multi 使用密钥
我在让 Net::SSH::Multi 库工作时遇到问题,它应该连接到每个盒子并运行该命令,我正在尝试获取输出。
这是我的代码:
我从跑步中得到的回应是:
ruby - 为什么 net-ssh-2.6.2 无法通过自己的单元测试?
我已经在我的 Mac(运行 OSX 10.8.2)和 PC(运行 Windows 7)上安装了 ruby(1.9.3)。我已经安装(使用“gem install ...”)net-ssh、test-unit、mocha 和 echoe。安装看起来很干净(Mac 抱怨文档中有一些 unicode 垃圾,但我不在乎)。
当我运行发行版中包含的单元测试时,我遇到了失败和错误。它们在 Mac 和 PC 上是不同的。据我所知,我有必要的东西——ssh 正在工作,我的 .ssh 目录存在并且有一个 id_dsa 对和一个 id_rsa 对。
很长一段时间以来,我一直在使用 SSH(shell、sftp、scp 等)与我的 mac 进行连接,所以我认为我的 SSH 堆栈正在工作。
这是一个愚蠢的配置问题,还是 net-ssh/Ruby 中有问题?
在 Mac 上,我通过运行 net-ssh 测试套件得到以下结果: