2016-08-11 7 views
0

Linuxベースのシステムでは、私はsshを使ってログオンしたいと考えています。理想的には、異なるポートに接続することによって、2つ(または場合によっては3つ)の異なる実行可能ファイルを起動する必要があります。異なるポートを使用してsshとは異なるアプリケーションを起動しますか?

理想的には、私はいくつかの異なるポートを開き、sshdがどのポートに応じて異なる実行可能ファイルを起動したいと思っていますか?これをどのように設定するのですか?私はsshd_configを見てきましたが、それ以外のものは見当たりません。

別のユーザーを設定し、それぞれのシェルとして起動したいさまざまなアプリケーションをセットアップすることもできました。

または私は明白な解決策を見逃している(私は何をしたくないが。ssh [email protected] executableのように、リモートユーザーが実行可能ファイルを指定することですか)?

1これはBuildRootベースの組み込みシステムであり、かなり貧弱なリソースで動作しますが、最近の本格的なLinuxカーネルであり、動作するssh接続があります。

2は、対話型のCLIベースのプログラムです。

答えて

1

ほとんどのLinuxシステムは、OpenSSHサーバを使用します。 Match指示文を使用してこの動作を取得できるようです。 SSHサーバー設定ファイルのドキュメントはhereです。

まず、sshdは、使用する追加のポートで接続をリッスンする必要があります。 PortまたはListenAddressディレクティブのいずれかを使用してこれを行うことができます。

Port 22  -- Listen on the normal port 22 
Port 42  -- Also listen on port 42 
ListenAddress 1.2.3.4:62 -- Also listen on address 1.2.3.4, port 62 

その後、あなたは特定のポートに接続しているユーザーのための特別なアクションを取るようにとはForceCommandディレクティブをマッチを使用することができます設定したくない人のために

Match LocalPort 42 
    ForceCommand /usr/local/bin/the-42-app 

Match LocalPort 62 
    ForceCommand /usr/local/bin/the-62-app 

sshサーバを複数のポートでリッスンするには、ユーザがどのように接続するかに応じて、サーバに "缶詰"アプリケーションを実行させる2つの方法があります。

サブシステム

サブシステムのサーバに事前に設定されますコマンドです。クライアントは名前でサブシステムの実行を要求し、サーバーはサブシステムに関連付けられたコマンドを実行します。これにより、クライアントは実行する正確なコマンドを知る必要がなくなります。

あなたがsshd_configファイルに次のような行を追加することにより、SSHDでサブシステムを構成:キーのキー

にコマンドを強制

ssh [email protected] -s someApp   -- "-s" means to request a subsystem 

Subsystem someApp /usr/local/bin/someApp 

次にクライアントはこのようにそれを呼び出しますベースの認証では、特定のキーが使用されたときに特定のコマンドを実行させることができます。これはauthorized_keysファイルで行われ、hereと記載されています。

のauthorized_keysファイルの各行は、通常、次のように起動します:

ssh-rsa AAAAB3N... 

あなたがラインにオプションフィールドを付加することができます。指定できるオプションの一つは、キーを認証するために使用されたときに実行するコマンドです:

command="/usr/local/bin/someApp" ssh-rsa AAAAB3N... 

そのキーを認証するために使用されている場合、サーバが実行するためのクライアント要求を命じるものは何でも無視し、実行されます代わりに指定されたコマンド。

+0

ありがとう!これはまさに私が探しているものです。私はsshdのmanページを見ていましたが、このように 'match'ディレクティブを使うことはできませんでした。 – Popup

0

複数のポートでリッスンするようにSSHサーバーを構成できます。ただ、このようにsshd_configファイルに追加ポートを追加します。

ポート22

ポートを1111の

ポート2222

+0

ありがとうございます!しかし、どのポートが使用されたかに応じて、異なる実行可能ファイルを起動するようにsshdに指示するにはどうすればよいですか? – Popup

+0

それは、 "SSH -p 1111 user2の@ SERVER1 DF -ah" それとも、何か他のものを探して "のserver1日@ 22 user1の-pのssh" ような単純なものでしょうか? – Shantanu

+0

さて、私が質問で指定したように、私はむしろユーザーに実行可能ファイルを明示的に指定させたくないでしょう。 (さまざまな理由で - すべてが有効ではない) – Popup

関連する問題