公開鍵認証を私のsftp chrootディレクトリに追加したいのですが、いつでも取得できます。
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/test/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
Couldn't read packet: Connection reset by peer
パスワードによる認証が可能なため、chrootが機能します。私はこのホストにchrootなしで他のアカウントを持っていますが、このキーで動作します。何度も試しましたが、うまくいきません。
Auth.logのサーバーには、次の情報のみがあります:xxx [preauth]によって接続が閉じられました
これは私のディレクトリです:
ls -laR /sftp/
/sftp/:
total 12
drwxr-xr-x 3 root root 4096 May 3 16:55 .
drwxr-xr-x 23 root root 4096 May 3 14:46 ..
drwxr-xr-x 3 root root 4096 May 3 16:45 backup
/sftp/backup:
total 12
drwxr-xr-x 3 root root 4096 May 3 16:45 .
drwxr-xr-x 3 root root 4096 May 3 16:55 ..
drwxr-xr-x 3 backup sftpusers 4096 May 3 16:55 incoming
/sftp/backup/incoming:
total 12
drwxr-xr-x 3 backup sftpusers 4096 May 3 16:55 .
drwxr-xr-x 3 root root 4096 May 3 16:45 ..
drwx------ 2 backup sftpusers 4096 May 3 21:06 .ssh
/sftp/backup/incoming/.ssh:
total 12
drwx------ 2 backup sftpusers 4096 May 3 21:06 .
drwxr-xr-x 3 backup sftpusers 4096 May 3 16:55 ..
-rw------- 1 backup sftpusers 391 May 3 21:06 authorized_keys
私のユーザー:
backup:x:1002:1003::/incoming:/usr/sbin/nologin
私のssh設定:
Match Group sftpusers
ChrootDirectory /sftp/%u
AuthorizedKeysFile /sftp/backup/incoming/.ssh/authorized_keys
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
助けてください。
私はこの解決策を試し(AuthorizedKeysFileをMatchブロックに入れました)、sshd -T
は不平を言います:
/etc/ssh/sshd_config line 153: Directive 'AuthorizedKeysFile' is not allowed within a Match block
(RHEL 6.6、openssh 5.3p1-104)
解決策:authorized_keysファイル(およびユーザーの.sshディレクトリ)は、/ etc/passwd、outsideで定義されているホームディレクトリの場所に存在している必要があります。
例(OPユーザー名/ uidを使用):
/etc/passwd:
backup:x:1002:1003::/home/backup:/sbin/nologin
ルートが所有するディレクトリ/home/backup
を作成します
ディレクトリを作成/home/backup/.ssh
、所有権をバックアップに変更、chmod 700 /home/backup/.ssh
authorized_keysファイルを/home/backup/.ssh
、chmod 400 authorized_keys
にコピーします
ls -laR /home
/home:
total 12
drwxr-xr-x 3 root root 4096 Jul 9 12:25 .
drwxr-xr-x 3 root root 4096 Sep 22 2014 ..
drwxr-xr-x 3 root root 4096 Jul 9 12:25 backup
/home/backup:
total 12
drwxr-xr-x 3 root root 4096 Jul 9 12:25 .
drwxr-xr-x 3 root root 4096 Jul 9 12:25 ..
drwx------ 3 backup sftpusers 4096 Jul 9 12:28 .ssh
/home/backup/.ssh:
total 12
drwx------ 3 backup sftpusers 4096 Jul 9 12:28 .
drwxr-xr-x 3 root root 4096 Jul 9 12:25 ..
-r-------- 3 backup sftpusers 391 Jul 9 12:29 authorized_keys
/ etc/ssh/sshd_configは次のようになります。
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Chrootディレクトリ構造は次のようになります。
ls -laR /sftp/
/sftp/:
total 12
drwxr-xr-x 3 root root 4096 May 3 16:55 .
drwxr-xr-x 23 root root 4096 May 3 14:46 ..
drwxr-xr-x 3 root root 4096 May 3 16:45 backup
/sftp/backup:
total 12
drwxr-xr-x 3 root root 4096 May 3 16:45 .
drwxr-xr-x 3 root root 4096 May 3 16:55 ..
drwxr-xr-x 3 backup sftpusers 4096 May 3 16:55 incoming
drwxr-xr-x 3 root root 4096 May 3 16:55 home
/sftp/backup/incoming:
total 12
drwxr-xr-x 3 backup sftpusers 4096 May 3 16:55 .
drwxr-xr-x 3 root root 4096 May 3 16:45 ..
/sftp/backup/home:
total 12
drwxr-xr-x 3 root root 4096 May 3 16:55 .
drwxr-xr-x 3 root root 4096 May 3 16:45 ..
drwx------ 2 backup sftpusers 4096 May 3 21:06 backup
/sftp/backup/home/backup:
total 12
drwx------ 3 backup sftpusers 4096 May 3 21:06 .
drwxr-xr-x 3 root root 4096 May 3 16:55 ..
注:/sftp/backup/home/backup
は空です。chroot以外の/home/backup
のようなパスを提供するためにのみ存在します-.ssh
ディレクトリは/home/backup/.ssh
not/sftp/backup/home/backup/.ssh
問題は解決しました。
私はそれを変更しました:AuthorizedKeysFile /sftp/backup/incoming/.ssh/authorized_keysをAuthorizedKeysFile /sftp/%u/.ssh/authorized_keysに変更しました