Vraag OpenSSH: verschil tussen interne-sftp- en sftp-server


Waarom zijn er twee manieren om SFTP in te stellen met OpenSSH en wanneer te gebruiken? Is er een verschil tussen hen?

Ik bedoel, de eerste gebruikt een lib van OpenSSH en de tweede zegt "gebruik de interne", dus het is ook OpenSSH?

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

61
2018-01-16 19:40


oorsprong




antwoorden:


Volgens de sshd_config(5) man pagina, de internal-sftp is

een in-process sftp-server waarvoor geen ondersteuningsbestanden nodig zijn ChrootDirectory.

De internal-sftp werd veel later toegevoegd dan de standalone sftp-server binair, maar het is nu de standaard. Het ondersteunt alles dat de sftp-server doet en heeft het bovengenoemde voordeel.

Een ander voordeel is de prestaties, omdat het niet nodig is om een ​​nieuw proces voor de SFTP uit te voeren.

Ik geloof dat er geen reden is om het te gebruiken sftp-server voor nieuwe installaties.


De sftp-server wordt waarschijnlijk nog steeds bewaard voor achterwaartse compatibiliteit voor installaties die ervan afhankelijk zijn.

Bijvoorbeeld in het geval de beheerder vertrouwt op een login-shell-configuratie om te voorkomen dat bepaalde gebruikers zich aanmelden. Overschakelen naar de internal-sftp zou de beperking omzeilen, omdat de login-shell niet langer betrokken is.

Gebruik makend van sftp-server binair (als een op zichzelf staand proces) kun je ook een aantal hacks gebruiken, zoals de SFTP uitvoeren sudo.


72
2018-01-17 19:30





U kunt een authorized_key vergrendelen op de externe sftp-server.

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

Wanneer u dit doet, kan uw gebruiker sftp, maar kan niet scp of ssh:

$ sftp host: / etc / group / tmp
Verbinden met host ...
Ophalen van / etc / group naar / tmp / group
/ etc / group 100% 870 0.9 KB / sec 00:00

Pogingen om iets anders te doen zullen gewoon hangen:

$ scp host: / etc / group / tmp
Gedood door signaal 2.

$ ssh host uptime
Gedood door signaal 2.

Helaas is er geen eenvoudige manier om een ​​sleutel te vergrendelen met een chroot, tenzij de sshd_config is gewijzigd. Dit zou echt cool zijn voor een gebruiker om te kunnen doen zonder tussenkomst van de systeembeheerder.


5
2018-05-26 17:31



ForceCommand internal-sftp zou hetzelfde moeten bereiken - ptman
Handig ding is dat zonder chroot die je kunt gebruiken sshfs host:/home/user/.ssh ~/hackme om al die instellingen terug te zetten naar open toegang als je later van gedachten verandert. - sh1


Er bestaan ​​alternatieve SFTP-implementaties die samen met OpenSSH kunnen worden gebruikt:


5
2017-07-08 08:37