Quero restringir as chaves usadas para sshfs
garantir que apenas o sshfs
processo possa usar essa chave, ou seja, será limitado aos comandos sshfs
usados 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 sftp
que scp
devem 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 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 argumentos permitidos para o servidor sftp. Ideia semelhante à do rrsync
roteiro 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