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

Filezilla или PuTTY: у меня есть «Доступ предоставлен», а затем «Сервер неожиданно закрыл сетевое соединение». Как устранить неполадки?

Вот отрывок следов отладки Filezilla:

Offered public key from "(...)"
Offer of public key accepted, trying to authenticate using it.
Access granted
Server unexpectedly closed network connection

Я замечаю такое же поведение замазки в режиме отладки, доступ предоставляется, а затем «Сервер неожиданно закрыл сетевое соединение».

При удалении следующих строк из / etc / ssh / sshd_config:

Match User user1
   ChrootDirectory /home/user1
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand /usr/lib/openssh/sftp-server

Тогда Filezilla сможет подключиться, но не PuTTY. Это нормально, поскольку я нацелен только на FTP, но тогда пользователь user1 может получить доступ к гораздо большему, чем требуемый домашний каталог, что не очень хорошо.

Есть идеи, как решить эту проблему? Есть ли какой-нибудь журнал на стороне сервера?

PS: Я не думаю, что это имеет какое-либо отношение к проблеме, но аутентификация основана на ключах (как видно из трассировок).

Обновление: благодаря хорошему совету Фреда Клаузена, я изучил / var / log / secure и исправил «фатальную: неправильное владение или режимы для компонента каталога chroot». Но все равно не работает. Вот что сейчас находится в / var / log / secure

Accepted publickey for user1 from ***.***.***.*** port 56432 ssh2
pam_unix(sshd:session): session opened for user user1 by (uid=0)
subsystem request for sftp by user user1
pam_unix(sshd:session): session closed for user user1

Во время отладки Filzilla я обнаружил интересную ошибку:

Event Log: Started a shell/command
Incoming packet #0xc, type 94 / 0x5e (SSH2_MSG_CHANNEL_DATA)
00000000  00 00 01 00 00 00 00 26 2f 62 69 6e 2f 62 61 73  .......&/bin/bas
00000010  68 3a 20 4e 6f 20 73 75 63 68 20 66 69 6c 65 20  h: No such file 
00000020  6f 72 20 64 69 72 65 63 74 6f 72 79 0d 0a        or directory..

Заглядывая в это ...

Это нормально, поскольку я нацелен только на FTP, но тогда пользователь user1 может получить доступ к гораздо большему, чем требуемый домашний каталог, что не очень хорошо.

FTP и SFTP никоим образом не связаны друг с другом, за исключением того, что они оба могут использоваться для передачи файлов.

В любом случае для входа в систему SFTP я использую это в sshd_config:

Subsystem   sftp    internal-sftp -f AUTH -l INFO

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    AuthorizedKeysFile  %h/authorized_keys
Match

Пользователи, которые могут использовать sftp, находятся в группе sftp. Убедитесь, что вы дали им /sbin/nologin оболочка. Они получат то, что им нужно, от OpenSSH.

Наконец, если домашний каталог не существует, я думаю, вы также будете отключены. А также, если у пользователя нет доступа к домашнему каталогу. Права на домашний каталог должны быть 700 а пользователь и группа также должны быть именем пользователя и именем группы. В вашем примере:

1049327 drwx------. 2 user1 user1 4,0K oct 8 2013 user1

Это все относится к CentOS, я не знаю, работает ли это на другом смокинге.

Вы путаете chroot с тем, что делают putty и filezilla разными. putty хочет удаленную оболочку или "фальшивую" оболочку, какую-то команду. filezilla хочет sftp.

Так что решать тебе. Если вам нужен только sftp, вы не можете использовать шпатлевку. Если вы хотите использовать sftp, прочтите man sshd, вы, вероятно, захотите поместить туда internal-sftp, так как он не требует полной настройки chroot. Если вы укажете полный путь к sftp-серверу, вы должны поместить в chroot все библиотеки и другие обязательные файлы.

Вывод Filezilla ясно показывает, что chroot настроен неправильно.