c# - 在 digi 6030dx 调制解调器上使用 SSH.NET 执行命令 - 这个以左方括号开头的字符序列是什么?
问题描述
我有一些大型项目通过SSH.NET连接到许多设备
现在我必须添加对新调制解调器的支持,即 digi 6030dx。
我添加了它,我可以毫无问题地连接
但是当我发送一些/任何命令时show config
,输出是:
[16C[0K
[16C[0Ks
[17C[0Kh
[18C[0Ko
[19C[0Kw
[20C[0K
[20C[0Kc
[21C[0Ko
[22C[0Kn
[23C[0Kf
[24C[0Ki
[25C[0Kg
Commands
-------------------------------------------------------------------------------
config View and modify the configuration
exit Exit the CLI
analyzer Analyzer commands.
cli-legacy Enter the legacy Admin CLI.
cp Copy a file or directory.
help Show CLI editing and navigation commands.
ls List a directory.
mkdir Create a directory.
modem Modem commands.
more View a file.
mv Move a file or directory.
ping Ping a host.
reboot Reboot the system.
rm Remove a file or directory.
scp Copy a file or directory over SSH.
show Show instance statistics.
system System commands.
traceroute Print the route packets trace to network host.
update Update firmware.
dra.wk.0001> ashowconfigdra.wk.0001> ashowconfig
[16C[0K
有谁知道这是什么奇怪的迹象/为什么我的命令被这个和换行符分开?这是第一台有此问题的设备,并且该应用程序支持 200 多个其他设备,没有任何问题。
我猜是一些编码问题还是什么?腻子没有显示这些迹象,所以可能以某种方式“理解”它们?
解决方案
这些是ANSI 转义码。
通常,使用 SSH,只有当您的客户端(库)声明支持终端仿真时,您才能获得这些。
SshClient.CreateShell
当您使用“shell”通道(或SshClient.CreateShellStream
)时,SSH.NET 库总是这样做。
通常(您是否连接到行为良好的 SSH 服务器),以避免获取代码:
使用“exec”频道(使用
SshClient.RunCommand
)。SSH.NET 不在“exec”通道上使用终端仿真。尽管“设备”上的 SSH 服务器(与完整服务器相反)通常不实现“执行”通道。另请参阅exec_command 和在 Paramiko 上使用 invoke_shell() 发送有什么区别?修改 SSH.NET 代码以不为“shell”通道请求终端仿真。– 从实施中删除
SendPseudoTerminalRequest
请求。Shell.Start
尽管当您连接到某个“设备”并进一步远程登录到另一个设备并且代码可能来自远端设备时,问题是这实际上是否会对该设备产生任何影响。可能您将无法避免获取代码。第一个 SSH 连接缺少终端仿真可能不会对第二个 telnet 连接产生任何影响。
最后,您可能必须处理代码。
另请参阅如何从 C# 中的 AIX topas 命令结果中去除 ANSI 转义码。
推荐阅读
- javascript - 获取父元素
- angular - 尝试发出请求以更新 Angular 8 中的 JSON
- java - 如何使用在Java主类中创建的对象将值传递给方法
- php - 如何在我的 php 表单中以显示形式制作编辑链接?
- android - 是否有我的音乐播放器通知暂停和播放按钮不起作用但音乐停止并在主要活动中播放
- json - Laravel 6 从数组创建 JSON 并存储到 S3
- javascript - iframe 中的某些元素未加载
- ios - SwiftUI 中的 WKWebView - 用户与网站交互时如何切换视图?
- r - 按索引障碍划分序列
- django - 找不到安装的 python-django 或 python3-django 版本