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

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

Quero restringir as chaves usadas para sshfsgarantir que apenas o sshfsprocesso possa usar essa chave, ou seja, será limitado aos comandos sshfsusados ​​para escrever e salvar arquivos e listar diretórios.

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

Estou pensando em particular na command=opção e nas opções sftpque scpdevem ser incluídas nela.

Responder1

Para mim isso funciona:

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

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

Melhor ainda, você poderia apontar commandpara 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 argumentos permitidos para o servidor sftp. Ideia semelhante à do rrsyncroteiro bem conhecido.

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

informação relacionada