web-dev-qa-db-ja.com

SSHサーバーをシリアルポートに接続する

SSHをシリアルポートに接続する方法が必要です。シェルとシリアルポートで接続されているデバイスがあります。基本的に、SSHクライアントをシリアルポートに直接パイプしたいと思います。基本的に、SSHを介してシリアルコンソールに接続します。

SSHクライアント-> SSHサーバー->シリアル接続デバイス。

これどうやってするの? SSHをシリアルポートにブリッジします。クライアントはコマンドを実行しないでください。シリアルコンソールに直接配置する必要があります。

2
Citrullin

コマンドラインパラメータを必要とせずに、SSHサーバーのターミナルセッションをシリアルポートに接続する小さなスクリプトを記述します。たとえば、次のようにcuコマンドを使用できます。

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

これをたとえばに保存します。 /usr/local/bin/serial-connectionchmod a+x /usr/local/bin/serial-connectionで実行可能としてマークします。

パス名/usr/local/bin/serial-connectionをファイル/etc/shellsに追加します。

シリアル接続用のLinuxユーザーを作成します。 serialなど、好きな名前を付けることができます。パスワードを設定し、ユーザーが正常にログインできることを確認します。

最後に、serialユーザーのシェルを/usr/local/bin/serial-connectionに変更します。

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

これで、serialユーザーがログインすると、ユーザーのシェルが自動的に起動しますが、実際には、SSHセッションをシリアルポートに接続するコマンドになります。そして、そのコマンドが何らかの理由で終了した場合、SSHセッションは自動的に終了します。

接続を終了するには、serialユーザーは、PuTTYなどを使用している場合は~.(チルドドット)、OpenSSHクライアントを使用している場合は~~.(チルドチルドドット)を入力する必要があります。 。偶然にも、cuとOpenSSHクライアントの両方が~をエスケープ文字として使用します。行の先頭で2回入力すると、cuに単一のチルド文字が出力されます。

3
telcoM