複数のユーザーがスクリプトを使用してパスワードなしの SSH 経由でリモート サーバーにアクセスする

複数のユーザーがスクリプトを使用してパスワードなしの SSH 経由でリモート サーバーにアクセスする

現在、Active Directory に結び付けられた Linux ボックスを設定しています。このボックスでは、ユーザーは AD ユーザー名とパスワードを使用して SSH で接続し、情報を収集できます (ボックス A)。問題は、/etc/bash.bashrc に関数を作成しようとしていることです。ユーザーは、たとえば「get_info」と入力するだけで、関数によってリモート マシン (ボックス B) に SSH で接続し、コマンドを実行して、情報をユーザーに出力します。

これに関する問題は、Box A で RSA キーを生成し、それを Box B の authorized_keys に追加したところ、正常に動作するということです。私が直面している問題は、現在のユーザーと Box A にログインする新しいユーザーに対して、これを 1 回だけ設定するにはどうすればよいかということです。

現在行っている方法よりも良い方法はありますか。基本的には、リモート ボックスに接続し、コマンドを実行し、情報をユーザーに返すだけです。新しいユーザーが RSA キーを生成せずに、スクリプト経由でリモート ボックスに接続できるようにするにはどうすればよいでしょうか。

get_info 関数には値 'get_info 012345' が提供され、結果が返されます。

答え1

何が必要とされているか:

  • ユーザーによる共有キー
  • サーバー上に共通スクリプトを作成する
  • SSH 設定でユーザーを特定のコマンドに制限します。

    command="/bin/myscript.sh"、ポート転送なし、X11 転送なし、エージェント転送なし、pty なし ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= ユーザー

  • ローカルボックスまたはホームフォルダに、リモートサーバーへのsshコマンドを実行し、サーバー上でスクリプトを実行して出力するスクリプトを作成します。

  • リモートセッションに入力が必要な場合は、ローカルスクリプトを実行できます。

    ./local.sh 01234

実行する内容:

ssh user@remote '/bin/myscript.sh $1'

それは次のように解釈される

ssh user@remote '/bin/myscript.sh 01234

答え2

を変更するのではなく/etc/bash.bashrc、ローカルホストのすべてのユーザーの標準 PATH に配置されるプログラム (bash で記述したものなど) を作成してみてはいかがでしょうか。このプログラムは、ローカル システム上の共通の秘密キーを指すフラグを使用して ssh を呼び出すことができます (たとえば、/etc または /etc/opt/ のどこかに置くことができます)。リモート システムには、公開キー ファイルを含む単一のアカウントがあり、公開キーを使用するユーザーは 1 つのコマンド (つまり、情報コマンド) しか実行できないように変更されます (ssh のマニュアル ページを参照)。

関連情報