SSHサーバー側のSSH ProxyCommand


4

SSHを使う ProxyCommand クライアントのディレクティブ ~/.ssh/config ジャンプホストとして機能する別のSSHサーバーを介してSSHサーバーに接続することは可能です。

SSHサーバー側に同様の設定はありますか?たとえば、ユーザーが特定の認証されたキーを使用してジャンプマシンにログオンしたときに、このSSH接続を自動的に実行中の別のマシンに転送する sshd

回答:


5

誰かがsshキーを使ってログインするたびに実行されるコマンドを指定できます。

ファイルを編集する ~/.ssh/authorized_keys。転送したいすべての鍵の前に command=ssh user@target

これはすべてのユーザーに対して行わなければなりません。これはユーザ設定ファイルを使用して行われるので、すべてのユーザがこれを変更できます。あなたがあなたのユーザを信頼している(あるいはあなたが唯一のユーザである)なら、これは問題ありません。このマシンのシェルにアクセスする他の方法をユーザーに与えないことで、ユーザーがこれを変更できないようにすることもできます。

詳細については sshd manページを検索 AUTHORIZED_KEYS FILE FORMAT セクション command="command"

代わりに:あなたはコマンドを使用してコマンドを強制することができます ForceCommand/etc/ssh/sshd_config。このオプションはsshdによって強制されるのでより安全であり、root権限を持つユーザーだけがそれを変更できます。

詳細については sshd_config manページ検索する ForceCommand


authorized_keysファイルはssh設定ファイルとまったく同じではありません。rsyncやscpのようなコマンドはauthorized_keysのsshリダイレクトでは動作しないからです。どのようにしてそれがうまくいくのか知っていますか?
zidarsk8

すみません、私はもうそれであなたを助けることができません。私のssh時代はずっと遅れています、そして私はもはやsshの難解な複雑さについての深い知識にありません。多分これはあなたを助けるでしょう: superuser.com/questions/276533/scp-files-via-intermediate-host
lesmana

1

最も簡単な方法はただ持っていることです

ssh -t user@host

ユーザーの.bash_loginファイルにログインすると、リモートマシンへの新しいsshセッションが開始されるようになります。 (-tは擬似tty割り当てを強制します - これが必要かどうかはわかりません)

より複雑で集中管理したい場合は、ユーザーのシェルを正しいリモートサーバーに接続するスクリプト/プログラムに置き換えて、それに応じてsshコマンドを実行することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.