Am creat un cont sftp doar acum câteva luni.
Am luat aproximativ acest ghid: https://wiki.archlinux.org/index.php / SFTP_chroot
Este posibil accesul de la Linux.
Acum cineva vrea să acceseze contul sftp prin WinScP.
Am făcut-o conform acestor documente: https://winscp.net/eng/docs / guide_public_key
Am creat o pereche de chei publice / private prin WinSCP și am creat cheia publică pentru fișierul authorized_keys cu această comandă:
puttygen -O public-openssh -o foo.pub foo.ppk
Am adăugat linia foo.pub la ~ modsftp / .ssh / authorized_keys ca de obicei.
Accesul fără parolă de la Linux funcționează, dar nu prin putty / winscp:
===> psftp -i foo.ppk modsftp@remote-host
Using username "modsftp".
Server refused our key
Using keyboard-interactive authentication.
Password:
Pe serverul ssh doar văd această linie:
sshd[26281]: Connection closed by 10.111.44.33 [preauth]
Sunt lipsit de idei de ce funcționează prin intermediul instrumentelor de linie de comandă openssh, dar nu prin putty / winscp.
Проблема решена: PEBCAK (существует проблема между креслом и клавиатурой).
Доступ через инструменты openssh работал, потому что использовался мой ssh-agent, а не аргумент командной строки -i foo
: -)
Добавление открытого ключа в ~ modsftp / .ssh / authorized_keys было бесполезно в этом случае.
Если я отключил ssh-agent таким образом (установив SSH_AUTH_SOCK на пустую строку), он не работал и для инструментов openssh:
SSH_AUTH_SOCK= sftp -i foo modsftp@remote-host
Я включил LogLevel DEBUG
в sshd_config и увидел проблему в файле журнала:
sshd[30819]: debug1: matching key found: file /etc/ssh/authorized_keys/modsftp, line 1
BINGO: настройка только для sftp отличается от обычных учетных записей ssh. Author_keys хранятся в другом файле.
Проблема решена. Надеюсь, этот вопрос + ответ помогут другим людям решить подобные проблемы.