一致ブロックでは 'StrictModes'ディレクティブは許可されていません。

一致ブロックでは 'StrictModes'ディレクティブは許可されていません。

ラズベリーパイネットワークを構築しています。ADS-B受話器。複数のノードは、家、小屋、親など、さまざまな場所に配置されます。すべて以下のように設定されています。家に電話するAmazon-EC2リバースSSHトンネルを使用します。

私が本当に達成したいのは、どのノードがどのノードであるか、そしてそのノードのSSHに使用されるローカルポートを区別する方法です。

sudo netstat -tlpe --numeric-ports | grep sshdどのユーザーがプロセスを実行しているかを示すため、各トンネルにユーザーを割り当てることを検討しています。 SSHリバーストンネルのユーザーを制限したいです。可能であれば、すべてのノードキーを同じファイルに保存し、他のすべてのユーザーに保存したいと思いますauthorized_keysStrictModes yes

結局、次のコマンドを実行しました。

sudo groupadd sshtungrp
sudo useradd sshtunnel -m -d /home/sshtunnel -s /bin/true -g sshtungrp
while read p; do sudo useradd $p -M -d /home/sshtunnel -s /bin/true -g sshtungrp; done < users.txt;

sudo -u sshtunnel mkdir /home/sshtunnel/.ssh
sudo -u sshtunnel vim /home/sshtunnel/.ssh/authorized_keys

sudo -u sshtunnel chmod 750 /home/sshtunnel
sudo -u sshtunnel chmod 750 /home/sshtunnel/.ssh
sudo -u sshtunnel chmod 640 /home/sshtunnel/.ssh/authorized_keys

私は/etc/ssh/sshd_config以下を追加しました:

Match Group *,!sshtungrp
        StrictModes yes

エラーメッセージが表示されますDirective 'StrictModes' is not allowed within a Match block。この問題をどのように克服できますか?あるいは、最終的にどのノードがどのノードであるか、そしてそのノードのSSHに使用されているローカルポートを特定する目的を達成できますか?

ベストアンサー1

さまざまなユーザーに提供して、さまざまな接続ソースを差別化したいと思います。すべてのキーを使用すると、すべてのアカウントにログインできるため、異なるユーザー間でファイルを共有するauthorized_keys必要はありません。 (そうだろう働くただし、アカウントの分離はセキュリティ上の利点を提供しません。 )

したがってauthorized_keys、各ユーザーはルートに属するファイルを持っています。各authorized_keysファイルは、そのアカウントに対応するキーのみを認証します。複数のキーを作成するのはコストが安いので、しない理由はありません。閉じる必要はありませんStrictModesAuthorizedKeysFileユーザー固有のブロックでこのディレクティブを使用するMatchか、ユーザー名で置換を含むディレクティブを使用できますAuthorizedKeysFile%u

トンネルユーザーの作成:

sudo groupadd sshtungrp
sudo mkdir /etc/ssh/tunnelkeys # or wherever you want to keep them
# Add users without /home
while read p; do sudo useradd $p -r -s /bin/true -g sshtungrp; done < users.txt;
# Copy key file with: sudo vim /etc/ssh/tunnelkeys/%u

sshd_config:

Match Group sshtungrp
        AuthorizedKeysFile /etc/ssh/tunnelkeys/%u

おすすめ記事