SFTP公開鍵認証は、あるユーザーには機能しますが、他のユーザーには機能しません。

SFTP公開鍵認証は、あるユーザーには機能しますが、他のユーザーには機能しません。

公開鍵を使用してSFTPを介してログインできますが、他のユーザーが同じ方法で作業するように設定できないユーザーは1人います。他の同様の問題を検索しましたが、回避策は通常所有権または権限に関連していますが、この構成を何十回も確認しましたが、すべてが正しくソートされました。

必要な結果は、クライアントが単一のキーペアを使用して複数のアカウントを使用してサーバーに接続できるようにすることです。現在の構成では、authorized_keysファイルの内容は両方のユーザーと同じであり、クライアントの秘密鍵がサーバーにインストールされている公開鍵と絶対に一致していると確信しています。

有効なユーザー:

# id ideal-dwh
uid=514(ideal-dwh) gid=514(ideal-dwh) groups=514(ideal-dwh),519(sftp-users)

# ls -la
total 48
drwxr-xr-x 4 root      sftp-users  4096 Jul 12 21:08 .
drwx-----x 6 root      root        4096 Jul 13 14:13 ..
drwx--x--- 2 root      sftp-users  4096 Jul 12 21:10 .ssh
drwxr-xr-x 2 ideal-dwh sftp-users 36864 Jul 13 05:45 uploads

# cd .ssh
# ls -la
total 16
drwx--x--- 2 root sftp-users 4096 Jul 12 21:10 .
drwxr-xr-x 4 root sftp-users 4096 Jul 12 21:08 ..
-rw-r--r-- 1 root sftp-users 1036 Jul 12 16:01 authorized_keys

機能しないユーザー:

# id gapautoparts-dwh
uid=524(gapautoparts-dwh) gid=524(gapautoparts-dwh) groups=524(gapautoparts-dwh),519(sftp-users)

# ls -la
total 48
drwxr-xr-x 4 root             sftp-users  4096 Jul 13 14:13 .
drwx-----x 6 root             root        4096 Jul 13 14:13 ..
drwx--x--- 2 root             sftp-users  4096 Jul 13 14:13 .ssh
drwxr-xr-x 2 gapautoparts-dwh sftp-users 36864 Jul 13 14:13 uploads

# cd .ssh
# ls -la
total 16
drwx--x--- 2 root sftp-users 4096 Jul 13 14:13 .
drwxr-xr-x 4 root sftp-users 4096 Jul 13 14:13 ..
-rw-r--r-- 1 root sftp-users 1036 Jul 13 14:13 authorized_keys

sshd_configコンテンツ

LogLevel VERBOSE
...
Match Group sftp-users
ChrootDirectory /data/%u
ForceCommand internal-sftp -d /uploads
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

これ確認ログファイルは空であり、設定ファイルのログレベルが詳細であっても、セキュリティログに失敗したログイン試行に関する内容は表示されません。

2番目のユーザーに接続しようとしたときに発生する特定のエラーは次のとおりです。

Status: Connecting to server...
Status: Using username "gapautoparts-dwh". 
Status: Server refused our key 
Status: Access denied 
Error:  Authentication failed.
Error:  Critical error: Could not connect to server
Status: Disconnected from server

私が今まで試したこと:

権限と所有権の変更

この問題を研究するとき、これが最も一般的な解決策であるようです。私が一般的に見る推奨設定は、接続しているユーザー/グループです。.ssh700の権限を持つディレクトリとそのコンテンツ.sshディレクトリと600の権限認証キー文書。破損したユーザーを変更しても何の違いもないようです。また、ビジネスユーザーにこれらの所有者/権限を設定すると、実際に問題が発生します。

私は私が考えることができる所有権と権限のほぼすべての組み合わせを試しましたが、成功しませんでした。現在の作業ユーザーの所有権と権限を、私がすでに持っているもの以外のものに変更すると、すべてが中断されます。

別のキーペアの使用

私が望む結果は、特定のキーペアを使用して2人のユーザーをリンクすることですが、トラブルシューティング時に別のキーペアを使用してみました。認証キー必要に応じてファイルを送信してください。

これにより、被害を受けたユーザーには違いはありません。ビジネスユーザーの場合は、サーバーとクライアントに設定されたキーペアを使用して接続できます。

新しいユーザーから始める

この問題は、この投稿で共有した特定のユーザーに限定されません。仕事用ユーザーを作成するのと同じ手順で追加ユーザーを作成しましたが、誰にも接続できません。

sshd_configでユーザー固有の設定を指定する

また、グループ設定の代わりにsshd_configにユーザー固有のルールを追加しようとしましたが、成功しませんでした。以下を追加しても違いはありません。

Match User gapautoparts-dwh
ChrootDirectory /data/gapautoparts-dwh
ForceCommand internal-sftp -d /uploads
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

ベストアンサー1

問題は、最終的に新しいユーザーのホームディレクトリが正しく設定されていないことです。

ユーザーを作成するには、次のコマンドを使用します。

useradd -g sftp-users -d /data/gapautoparts-dwh/ gapautoparts-dwh

/etc/passwd のエントリは次のように追加されます。

gapautoparts-dwh:x:524:524::/home/gapautoparts-dwh:/bin/bash

-dフラグが機能しない理由は、私が調査する必要があるもう1つの質問ですが、この問題は解決されました。

おすすめ記事