¿Necesitas un shell para SCP?

33

Estoy permitiendo a un amigo una cuenta local en mi máquina, exclusivamente para SCP. ¿Puedo especificar el shell de su cuenta como /bin/true, o de alguna otra manera limitar la cuenta, mientras sigo permitiendo SCP?

Gilles 'SO- deja de ser malvado'
fuente

Respuestas:

39

Puede establecer el shell de ese usuario en rssho scponly, que están diseñados precisamente para ese propósito:

rssh es un shell restringido para usar con OpenSSH, que solo permite scp y / o sftp. Ahora también incluye soporte para rdist, rsync y cvs.

scponly es un 'shell' alternativo (de algún tipo) para los administradores de sistemas que deseen proporcionar acceso a usuarios remotos para leer y escribir archivos locales sin proporcionar ningún privilegio de ejecución remota.

Cuando ejecuta scp, el demonio OpenSSH dispara un scpproceso con la -fopción. Cuando ejecuta sftp, el demonio OpenSSH dispara un sftp-serverproceso. En cualquier caso, el subproceso se ejecuta a través del shell del usuario, por lo que el shell debe admitir al menos estos comandos, con una sintaxis similar a Bourne. Cualquier shell de estilo Bourne servirá, al igual que csh (creo que sus reglas de comillas son lo suficientemente compatibles para qué sshdusos). Rssh y scponly permiten estos comandos y nada más. /bin/trueNi siquiera ejecutaría estos comandos.

Gilles 'SO- deja de ser malvado'
fuente
Entonces, ¿esto significa que / bin / false o / bin / true no funcionarían, o solo permitirían sftp?
Danny Staple
2
@DannyStaple Si el shell de un usuario está configurado /bin/falseu otro programa que no hace nada, ni scp ni sftp funcionarán. Para ambos comandos, el daemon SSH dispara un comando de shell que ejecuta un proceso de servidor dedicado ( scp -fo sftp-server). Necesita un shell de estilo Bourne, o al menos una aproximación lo suficientemente cercana (como la rsshque permite solo estos pocos comandos).
Gilles 'SO- deja de ser malvado'