SFTP nologin ユーザー公開鍵認証が機能しません。

SFTP nologin ユーザー公開鍵認証が機能しません。

ユーザー構成

cat /etc/passwd | grep sftp
sftpadmin:x:1001:1001::/backups:/sbin/nologin

生成されたディレクトリ構造

mkdir -p /backups/.ssh/
touch /backups/.ssh/authorized_keys
sudo chown sftpadmin:sftpusers/backups/.ssh
sudo chmod 700 /backups/.ssh
sudo chown sftpadmin:sftpusers /backups/.ssh/authorized_keys
sudo chmod 600 /backups/.ssh/authorized_keys

次に、Authorized_keys ファイルに顧客公開鍵を追加しました。

それからこれを試しました。

sftp -v -oPort=22 -i /home/me/.ssh/id_rsa [email protected]

ただし、毎回パスワードを入力するように求められます。/var/log/secureパスワードを入力しないと、小切手には何も表示されません。

私はホームディレクトリを持つ他のユーザーアカウントと同じRSAキーペアを試しましたが、これはSSHおよびSFTP公開キー認証で機能します。

ただし、SFTP経由で接続しようとするたびにsftpadminパスワードを入力するように求められます。サーバーが公開鍵の使用を拒否しました。なぜ?この問題をどのように解決しますか?

編集する:

  • Centos 実行 2009年7月9日
  • OpenSSH_7.4p1、OpenSSL 1.0.2k-fips 2017年1月26日
  • /etc/ssh/sshd_config設定AuthorizedKeysFile .ssh/authorized_keys
  • /bin/bashシェルのSSH割り当てユーザーを再起動しましたが、同じ問題
  • selinuxが無効
  • ファイアウォールが無効になっています。

修正する: 効果がありました。 ITは次の組み合わせです。

  • /etc/passwdの設定
  • Chroot ディレクトリの構成/etc/ssh/sshd_config
  • 特権

次のように修正しました。

  • 上記のように/etc/passwdをそのままにしてください。
  • /etc/ssh/ssh_config を編集し、次の内容を設定します。
    Match Group sftpusers
    ChrootDirectory /backups/%u
    ForceCommand internal-sftp
    
  • 次の手順を正しい方法で作成して設定したことを確認してください。
    mkdir -p /backups/.ssh
    touch /backups/.ssh/authorized_keys
    chown root:sftpusers /backups
    chown -R sftpadmin:sftpusers /backups/.ssh
    chmod 755 /backups/
    chmod 600 -R /backups/.ssh
    

組み合わせが機能しました。問題はchroot刑務所の所有権にあります。他のユーザーではなく root が所有する必要があります。

ベストアンサー1

おすすめ記事