Назад | Перейти на главную страницу

Только учетная запись sftp: доступ через putty / winscp не работает

Несколько месяцев назад я создал только учетную запись sftp.

Я взял примерно это руководство: https://wiki.archlinux.org/index.php/SFTP_chroot

Возможен доступ из linux.

Теперь кто-то хочет получить доступ к учетной записи sftp через WinScP.

Я сделал это согласно этим документам: https://winscp.net/eng/docs/guide_public_key

Я создал пару открытого / закрытого ключей через WinSCP и создал открытый ключ для файла authorized_keys с помощью этой команды:

puttygen -O public-openssh -o foo.pub foo.ppk

Я добавил строку foo.pub в ~ modsftp / .ssh / authorized_keys, как обычно.

Доступ без пароля из linux работает, но не через putty / winscp:

===> psftp -i foo.ppk modsftp@remote-host
Using username "modsftp".
Server refused our key
Using keyboard-interactive authentication.
Password: 

На ssh-сервере я просто вижу эту строку:

sshd[26281]: Connection closed by 10.111.44.33 [preauth]

Я не понимаю, почему он работает через инструменты командной строки openssh, но не через 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 хранятся в другом файле.

Проблема решена. Надеюсь, этот вопрос + ответ поможет другим людям с подобными проблемами.