SSHキーペアを公開せずに有効にする方法

SSHキーペアを公開せずに有効にする方法

ゲートウェイサーバー()にSSHキーペアを使用してアクセス[email protected]できるSSHアカウントがあります。このアカウントにアクセスする必要がある多くのシステム管理者がいます。彼らはそれぞれ独自のSSHアカウントを持っています。ts_key.pub/ts_key.privgateway.orggateway.org[email protected]

ts_key.pub/ts_key.priv引き続き使用gateway.orgし、システム管理者が使用できるようにする方法はありますか?露出しないでくださいシステム管理者に?したがって、そのうちの1人が会社を去り、彼のアカウントがgateway.org閉鎖されると、ts_key.pub/ts_key.privそのアカウントを使用できなくなります。

更新:誰かが私(IRC / # OpenSSHの良い人)にパスワードで秘密鍵を暗号化し、ssh-agent / ssh-addを使用するように提案しました。しかし、具体的な内容はよくわかりません...

答え1

あるいは、authorized_keysファイルにキープレフィックスを追加することもできます。[Eメール保護]"from = ip.address.of.gateway.org"を使用すると、接続がゲートウェイシステムから着信している場合にのみキーが効果的に機能します。

詳細については、「man sshd」を参照してください。

gateway.orgもう1つの可能性は、ログインが無効になっている別のアカウントに秘密鍵を入れることです。このアカウントをsecretkeeper例にしてみましょう。その後、システム管理者にアカウントへの制限された sudo アクセス権を付与できます (sudoersファイル構文)。

User_Alias ADMINUSERS=sysadmin1, sysadmin2, sysadmin3 #...etc.

ADMINUSERS ALL=(secretkeeper) /usr/bin/ssh secretremote

使いやすくするために、できるだけ多くの~secretkeeper/.ssh/config接続パラメータを指定してください。

Host secretremote
    User topsecret
    HostName remote.org
    EscapeChar none
    IdentityFile /some/where/ts_key.priv

これで、あなたsysadmin1と他の人は実行できますが、他のコマンドを介してsudo -u secretkeeper ssh secretremote実行することはできませんsudosudoers他に定義されていない限り)。キーワードにすぎず、ファイル内で同じでsecretremoteあれば何でも構いません。sudoers~secretkeeper/.ssh/config

ファイルに指定されたコマンドにはsudoersパラメーターが含まれているため、特定のコマンドのみが許可されます。sudoそのコマンド(およびそのコマンドのみ)は、SSHsecretkeeper構成ファイルと秘密鍵を読み取ることができるユーザーとして実行され、接続を確立できます。sudoセッションはそのコマンドのみを実行するため、SSHssh接続が失われるとsudoセッションは終了します。secretkeeper対話型シェルはユーザーとして実行されません。

もちろん、これを行うには、システム管理者にgateway.orgシステムへのrootアクセス権を持ってはいけません。

関連情報