Вопрос: OpenSSH: разница между внутренними-sftp и sftp-серверами


Почему существуют два способа установки SFTP с OpenSSH и когда использовать их? Есть ли разница между ними?

Я имею в виду, что первый использует lib из OpenSSH, а второй говорит «использовать внутреннее», так что это также OpenSSH?

Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

59
2018-01-16 19:40


Источник




Ответы:


Согласно sshd_config(5) справочная страница, internal-sftp является

сервер sftp in-process, который не требует файлов поддержки при использовании с ChrootDirectory,

internal-sftp был добавлен намного позже, чем автономный sftp-server бинарный, но по умолчанию он по умолчанию. Он поддерживает все sftp-server имеет и имеет вышеупомянутое преимущество.

Другим преимуществом является производительность, так как нет необходимости запускать новый процесс для SFTP.

Я считаю, что нет причин использовать sftp-server для новых установок.


sftp-server вероятно, по-прежнему сохраняется для обратной совместимости для установок, которые полагаются на него.

Например, в случае, если администратор использует конфигурацию оболочки входа для предотвращения входа определенных пользователей в систему. internal-sftp будет обходить ограничение, поскольку оболочка входа больше не задействована.

С помощью sftp-server двоичный (являющийся автономным процессом), вы также можете использовать некоторые хаки, например запуск SFTP в sudo,


70
2018-01-17 19:30





Вы можете заблокировать authorized_key на внешнем sftp-сервере.

command = "/ usr / libexec / openssh / sftp-server" ssh-rsa AAAA ... == user@host.com

Когда вы это сделаете, ваш пользователь может sftp, но не может scp или ssh:

$ sftp host: / etc / group / tmp
Подключение к хосту ...
Получение / etc / group в / tmp / group
/ etc / group 100% 870 0.9KB / s 00:00

Попытка сделать что-нибудь еще просто зависает:

$ scp host: / etc / group / tmp
Убито сигналом 2.

$ ssh время ожидания хоста
Убито сигналом 2.

Увы, нет простого способа блокировки ключа для chroot, если не изменен sshd_config. Это было бы здорово, если бы пользователь мог обойтись без вмешательства системного менеджера.


5
2018-05-26 17:31



ForceCommand internal-sftp должны добиться того же - ptman
Удобная вещь, что без chroot вы можете использовать sshfs host:/home/user/.ssh ~/hackme для изменения всех этих параметров для открытия доступа, если вы передумаете позже. - sh1


Существуют альтернативные реализации SFTP, которые могут использоваться вместе с OpenSSH:


5
2017-07-08 08:37