すべてのユーザーが私のサーバーへのあらゆる種類のアクセスに公開/秘密鍵を使用できることを願っています。 SSH構成では3つのグループを設定します。
sshaccess
:ユーザーはシェル、SFTP、トンネルを使用できます。sftpaccess
: ユーザーはシェルを使用できませんが、SFTP は使用できます。mysqlaccess
: ユーザーはシェルを使用できませんが、ポート 3306 で TCP 転送を使用できます。
次の3つのグループへのSSH接続のみを許可します。
AllowGroups sshaccess sftpaccess mysqlaccess
グループを持つユーザーの場合は、sftpaccess
SFTPを強制し、ホームフォルダにユーザーをロックします。
Match Group sftpaccess
ForceCommand internal-sftp
ChrootDirectory %h
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
グループを持つユーザーの場合は、mysqlaccess
ポート3306でトンネリングを許可します。
Match Group mysqlaccess
Banner no
PermitTunnel yes
AllowTcpForwarding yes
PermitOpen 127.0.0.1:3306
しかし、ユーザーがいて、caique
彼に次のものが必要だとしましょう。
- ホームフォルダにロックされているSFTPにアクセスします。
- 資格情報を使用して接続するには、MySQLトンネルにアクセスしてください。
SFTP用のユーザーとMySQL Tunnel用のユーザーをそれぞれ作成したくありません。これを達成するための最良の方法は何ですか?
MySQLポートを公開したくないので、MySQL Tunnelを使用します。ただし、テストで接続されているユーザーと一緒にトンネルを使用することはできませんsftpaccess
。何を見逃していますか?
ベストアンサー1
次のセクションはどうですか?
Match Group sftpaccess Group mysqlaccess
ForceCommand internal-sftp
ChrootDirectory %h
AllowAgentForwarding no
Banner no
PermitTunnel yes
AllowTcpForwarding yes
PermitOpen 127.0.0.1:3306
もちろん、これを繰り返す必要があり、sshdがすべてのユーザーグループをロードしているかどうかに応じて動作する場合と動作しない場合があります(と思います)。
あるいは、ユーザー固有のユーザーを作成することもできますMatch
(これはこれらのユーザーをより多く獲得できないと仮定する傾向があります)。
私はルールの順序が重要だと思いますが、これが(他の2つのルールと比較して)最初か最後かはわかりません。私の考えでは、それが1位になるべきだと思います。