SSH経由でデータを中継するための仮想シリアルポートを作成するには?

SSH経由でデータを中継するための仮想シリアルポートを作成するには?

SSH経由でアクセスできるリモートLinuxシステムにシリアルポートがあります。

書くときはsshを介してリモートシリアルポートに書き、読んでいるときはその逆に書き込むファイル(実際のファイルではなくデバイスファイルやUnixドメインソケット?)を作成したいと思います。

ファイルを生成するコマンドを持ち、ファイルから読み込んでコマンドのSTDINにアクセスできるようにし、ファイルに書き込むとデータがコマンドのSTDOUTストリームに出力されるだけで十分だろうと思います。これにより、次のように使用できます。

ssh user@host "cat /dev/ttyREAL" | <some_command> /dev/ttyFAKE | ssh user@host "tee /dev/ttyREAL"

そのようなコマンドはありますか?それとも間違った方法で実行していますか?

ベストアンサー1

たぶんこの例のようなことを行い、socatそれを使って疑似ttyとそれへのシンボリックリンクを作成することができます~/myserialline。これを開くと、socatはstdin / stdoutを物理シリアルデバイスに接続するためにsocatを実行するssh(この場合はlocalhost)を実行します。

 socat PTY,link=$HOME/myserialline,raw,echo=0  EXEC:'ssh localhost socat - /dev/ttyS0'

このようなシリアルデバイスがあると仮定すると、(bash)シェルでそれをテストできます。たとえば、次のようになります。

exec 3<>~/myserialline # open pty for read and write
cat -u <&3 &  # read from pty
echo hello >&3 # write to pty

おすすめ記事