gpt4 book ai didi

R - 通过 ssh 连接并执行命令

转载 作者:太空狗 更新时间:2023-10-29 11:12:56 25 4
gpt4 key购买 nike

我想通过 ssh 连接到网络中的某些设备。

先决条件是:

  1. 它必须在 R(或 bash,或任何其他编程语言,但我更喜欢 R 语言)中运行命令并捕获 ssh session 的输出

  2. 必须输入明文密码(因为此设备之前没有访问过,不能用rsa key 对更改),所以ssh.utils包不符合这个要求

  3. sshpass 无法使用,因为我注意到它不适用于我测试过的某些设备。

我已经阅读了所有这些帖子,但我找不到执行它的有效方法:link 1 , link 2 , link 3 , link 4

我知道要求很难完成,但感谢您的努力!

编辑:

对不起,如果我没有让自己理解。我的意思是我在 R 本地工作,我想通过 ssh 连接到我所有网络中的 +3000 台设备。是Ubiquiti设备,开放的端口只有80和22。

如果 ssh 不起作用,我将使用 R 的 RSelenium 包并从端口 80 提取信息。但首先我将尝试使用 ssh pory 22,因为它比打开更有效一个模拟的浏览器。

所有这些 Ubiquiti 设备的最大问题是它们有登录密码。这就是为什么需要第 2 条条件。当我必须进入我知道的服务器时,我会花时间设置 rsa key 对,这样我就不必在每次连接到特定服务器时都输入密码,但这是不可能的(或者至少,对我来说这是不可能的)使用这些 key 对配置所有 +3000 Ubiquiti 设备。

这就是我不使用 snmp 的原因,例如,因为该设备可能已激活或未激活,或者 snmp 配置错误。我的意思是,我必须使用默认激活的东西,并且在某种程度上是有序的。而且只有80端口和22端口被激活,我知道所有用户和密码的设备。

sshpass 是 UNIX/Linux 中的实用程序 like this link explains适用于服务器但不适用于 Ubiquiti 设备,只要我已经测试过它。所以我不能使用它。

我需要从中提取输出的命令是 mca-status。只需将其输入控制台,它就会打印一些我想从 Ubiquiti 设备获得的统计数据。

如果我发布的内容有误,请纠正我。谢谢。

最佳答案

我认为你错了。我也不知道你在第 2 点想说什么,我也不知道第 3 点应该说什么。

现在:ssh 是一种身份验证 机制,允许您(受信任地)访问另一台机器并能够运行命令。这可以很简单

edd@max:~$ ssh bud Rscript -e '2+2'
[1] 4
edd@max:~$

我从机器“max”(我的服务器)上的 session 调用机器“bud”(我的桌面)上的 R(或者更确切地说,Rscript) .该命令可以是任何内容,包括写入临时或永久文件的内容。然后,您可以通过 scp 检索这些文件。

身份验证是独立处理的——在 Unix 上,我们经常使用 ssh-agent,它在后台运行并在登录时对您进行身份验证。

关于R - 通过 ssh 连接并执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612042/

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