通过SSH服务器登录后启动串口客户端

通过SSH服务器登录后启动串口客户端

我需要一种将 SSH 连接到串行端口的方法。有一个设备连接在带有外壳的串行端口上。我基本上想将 SSH 客户端直接通过管道连接到串行端口。基本上,您通过 SSH 连接到串行控制台。

SSH 客户端 -> SSH 服务器 -> 串口连接设备。

我怎样才能做到这一点?将 SSH 桥接到串行端口。客户端不应执行任何命令。它应该直接在串行控制台中。

答案1

编写一个小脚本,将 SSH 服务器上的终端会话连接到串行端口,而无需任何命令行参数。例如,您可以使用cu如下命令:

#!/bin/sh
exec cu -l /dev/ttyS0 -s 115200  # add/modify options if needed

将其保存到 例如/usr/local/bin/serial-connection并将其标记为可执行chmod a+x /usr/local/bin/serial-connection

将路径名添加/usr/local/bin/serial-connection到 file /etc/shells

创建用于串行连接的 Linux 用户。您可以随意命名它 - 例如,serial.设置密码并验证用户是否可以正常登录。

最后,将serial用户的 shell 更改为/usr/local/bin/serial-connection

chsh -s /usr/local/bin/serial-connection serial

现在,当serial用户登录时,用户的 shell 会自动启动 - 但现在它实际上是将 SSH 会话连接到串行端口的命令。如果该命令因任何原因结束,SSH 会话将自动结束。

要终止连接,如果使用 PuTTY 或类似工具,则serial用户需要键入(波浪号-点) ;如果使用 OpenSSH 客户端,则需要键入 (波浪号-波浪号-点)。偶然地,OpenSSH 客户端都将用作转义字符:在行首键入两次将发出一个波浪号字符。~.~~.cu~cu

相关内容