Quiero restringir las claves utilizadas para sshfs
garantizar que solo el sshfs
proceso pueda usar esa clave, es decir, se limitará a los comandos sshfs
utilizados para escribir y guardar archivos y enumerar directorios.
Además de las opciones no-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty
(que supongo que no afectarán) ¿qué otras opciones debo agregar?
Estoy pensando en particular en la command=
opción y en las opciones que sftp
deberían scp
incluirse.
Respuesta1
Para mí esto funciona:
command="/usr/lib/ssh/sftp-server"
(Puedes descubrirlo tú mismo mirando la lista de procesos en el servidor ssh)
Aún mejor, podría señalar command
un script de shell que verifique si el cliente ha utilizado el comando correcto. Así (simplificado, no probado):
#!/bin/sh
# We get SSH_ORIGINAL_COMMAND from sshd
# comment out for production!
echo "debug original command: $SSH_ORIGINAL_COMMAND" >&2
if [ "$SSH_ORIGINAL_COMMAND" != "/usr/lib/ssh/sftp-server" ]; then
echo "access denied" >&2
exit 1
fi
exec /usr/lib/ssh/sftp-server
Un script de este tipo también permitiría comprobar los argumentos permitidos para el servidor sftp. Idea similar a la del conocido rrsync
guión.
Para las otras posibles opciones "no-*". Supongo que puedes usar la mayoría de ellos, solo inténtalo. Se explican en man sshd
->AUTHORIZED_KEYS FILE FORMAT