Que restrições são necessárias em uma chave SSH para restringir o salvamento e gravação de arquivos apenas via SSHFS?

1

Desejo restringir as chaves usadas para sshfs para garantir que somente o processo sshfs possa usar essa chave, ou seja, ficará limitado aos comandos sshfs para gravar e salvar arquivos e listar diretórios.

Além das opções no-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty (que eu assumo não afetarão), que outras opções devo adicionar?

Estou pensando em particular na opção command= e em quais sftp , scp opções devem ser incluídas.

    
por vfclists 29.09.2016 / 14:16

1 resposta

3

Para mim, isso funciona:

command="/usr/lib/ssh/sftp-server"

(Você pode descobrir sozinho assistindo a lista de processos no servidor ssh)

Melhor ainda, você poderia apontar command para um script de shell que verifica se o cliente usou o comando correto. Assim (simplificado, não testado):

#!/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

Esse script também tornaria possível verificar os argumentos permitidos para o sftp-server. Idéia semelhante ao conhecido script rrsync .

Para as outras possíveis opções "no- *". Eu acho que você pode usar a maioria deles, apenas tente. Eles são explicados em man sshd - > AUTHORIZED_KEYS FILE FORMAT

    
por 29.09.2016 / 15:08