
大規模なディープラーニングモデルを実行するGPUと共にUbuntuを実行するサーバーがあります。私はこのサーバーが最初にSSHを介して入力を含む要求を受け入れてから、その入力をDLモデルに供給して出力を取得し(btw、Pythonスクリプトを介してモデルを実行)、最後にSSHを介して出力を元の送信者に返しますしたいです。どうすればいいですか?サービスを設定しようとしましたが、より良い方法があるかもしれません。どんな提案でも歓迎します。ありがとうございます。
答え1
man sshd
;セクションAUTHORIZED_KEYS FILE FORMAT
;オプションcommand="command"
例は次のとおりです。
$ head ~/.ssh/authorized_keys
command="cat > /home/vagrant/ssh-output" ssh-rsa AAAAB3NzaC1yc...
$ ls ssh-output
ls: cannot access 'ssh-output': No such file or directory
$ echo 'blah blah blah' | ssh -i .ssh/id_rsa localhost
Pseudo-terminal will not be allocated because stdin is not a terminal.
$ cat ssh-output
blah blah blah
シェルが作成されないことを確認してください。代わりに、クライアント側のパイプ入力がssh
SSHサーバー側のcat標準入力に渡されます。あなたのシナリオでは、command=""
Pythonスクリプトのパスに置き換えることができます。
この機能を設定するには、まずユーザーとユーザーのpub_keyを知る必要があります。これは汎用構成ではありません。ユーザー名と秘密鍵を公開すると、ユーザーにそれを使用するように指示し、それを汎用サービスとして提供できるようになりますが、共有秘密鍵(特に公開/一般的に使用される鍵)は容易に乱用される可能性があります。
また、この構成により、クライアントはこのコンピュータへのポート転送またはX11転送を開くことができます。これは制限される可能性があります。関連マニュアルページをお知らせします。