AWSにCentOS 7インスタンスがあり、.pemファイルを使用して接続しています。新しいユーザーを作成し、標準的な手順に従う(.sshディレクトリの作成、chmod 700、Authorized_keysファイルの生成、公開鍵のコピー、chmod 600)手順は次のとおりです。https://aws.amazon.com/premiumsupport/knowledge-center/new-user-accounts-linux-instance/)良い結果。
ただし、非標準のホームディレクトリで新しいユーザーを作成すると、権限エラーが発生し続けます。 /ディレクトリにフォルダを作成しようとした後、権限が他のフォルダと一致しないことがわかったときに、rootアカウントを使用してそこに新しいフォルダを作成し、そのフォルダユーザーの下に新しいフォルダを作成しました。 (したがって、デフォルトでは/test/はrootが所有し、/test/newuser/は新しいユーザーが所有します。)
残りの手順を実行しましたが、まだ運がありません。
/etc/ssh/sshd_config ファイルを確認し、次のように編集しました。
AuthorizedKeysFile .ssh/authorized_keys /test/newuser/.ssh/authorized_keys
それも無駄です。
この設定はAmazon Linux 2イメージでは機能しますが、CentOS 7では機能しません。どんな提案がありますか?
答え1
ユーザーの作成時に非標準のホームディレクトリを指定するには、useradd
次のコマンドを使用します。
デフォルトのホームディレクトリの作成
sudo mkdir /test
SELinuxが有効になっていて適用モードで実行されている場合は、ファイルに正しいSELinuxコンテキストでラベルを付け直す必要があります。
sudo semanage fcontext -a -t user_home_dir_t "/test(/.*)?"
SELinuxがファイルラベルを動的に再割り当てするように強制する
sudo restorecon -Rv /test
次に、カスタムホームディレクトリとしてユーザーを追加します。
sudo useradd -d /test/user1 user1
sudo useradd -d /test/user2 user2
これらのユーザーは、自分のホームディレクトリに対して正しい権限が設定されます。 SELinuxのコンテキストと説明に関する追加情報が見つかりました。ここ
答え2
いいですね。上記の作業を完了したことを確認したいと思います。ソリューションはCentos 7でうまくテストされていますが、AWSインスタンスではテストされていません。
On your local server :
#Get the pub key
cat ~/.ssh/id_rsa.pub
リモートサーバーから:
mkdir -p /test/newuser/.ssh/
chmod 700 /test/newuser/.ssh/
touch /test/newuser/.ssh/authorized_keys
chmod 600 /test/newuser/.ssh/authorized_keys
echo << EOF > /test/newuser/.ssh/authorized_keys
# ADD here your ~/.ssh/id_rsa.pub already generated
EOF
usermod -d /test/newuser test
chown root:root /test
chown -R test:test /test/*
#Edit/etc/ssh/sshd_config to add the above :
Match User test
AuthorizedKeysFile /test/newuser/.ssh/authorized_keys
sshd_configの内容をリモートサーバーにコピーすることもできます。
grep -v '^#' /etc/ssh/sshd_config | sed '/^$/d'