ユーザー構成
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 が所有する必要があります。