次のForceCommand
ディレクティブを使用してSSHサーバーをセットアップしました(group2.fqdn
と呼びます):
Match Group group1
ForceCommand ssh -t group1.fqdn
Match Group="*,!local,!group2,!root"
ForceCommand ssh -t group3.fqdn
これは、group2
にないユーザーのsftp
を壊します。 sftp
が機能するようにこれを変更するにはどうすればよいですか?
したがって:user1
of group1
は以下を行います:
sftp group2.fqdn
そして、彼らは(おそらくパスワードを2回入力する必要がある)実際にsftp
からgroup1.fqdn
を実行しています。これはできますか?
環境:
ラボでは、各グループにいくつかのUbuntuサーバーがありますが、外部アクセスが許可されるのは1つだけであるため、すべてのグループが1つのグループのサーバーにログインする必要があります。 。以前はカスタムシェルでこれを行っていましたが、ハッキングの代わりに使用可能なサーバーオプションを使用しようとしています。カスタムシェルバリアントはSFTPを許可しませんでしたが、これも許可しませんが、どういうわけか、これらすべてのサーバーでSFTPを機能させたいと思います。
SFTPを機能させるコツは、クライアントから受け取ったSSHコマンドをそのままサーバーに渡すことです。 nixおよびLinuxの質問 に対してscp
またはsftp
を実行すると何が起こるかをテストしているときに、これを発見しました。
これで、私の構成は次のようになります。
Match Group group1
ForceCommand /usr/local/bin/ssh_wrapper group1
Match Group="*,!local,!group2,!root"
ForceCommand /usr/local/bin/ssh_wrapper group3
どこ /usr/local/bin/ssh_wrapper
は:
#! /bin/sh
/usr/bin/ssh -t -o StrictHostKeyChecking=no $USER@${1:-default}.fqdn $SSH_ORIGINAL_COMMAND
いくつかの簡単なテストから、sftp
とscp
はこの構成で問題なく動作します。