
現在、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 のマニュアル ページを参照)。