Rsync com ssh-keygen para usuário ssh com comandos limitados e diretório específico

4

Eu tenho duas máquinas, locais e remotas.

Eu quero fazer backup dos meus arquivos e pastas para a máquina remota automaticamente, usando o rsync para transferir arquivos e pastas, usando o ssh-keygen para fazer logon automaticamente na máquina remota.

Eu posso fazer isso como root ssh, mas isso será um pouco arriscado: alguém pode se logar diretamente na máquina remota como root se os arquivos locais forem comprometidos.

Eu tentei o rssh, mas não consegui fazer login automaticamente usando o ssh-keygen.

O que estou procurando é uma maneira de criar um usuário ssh com acesso limitado aos comandos do shell e com acesso apenas a um diretório específico seguro para efetuar login automaticamente sem causar danos ao computador remoto.

    
por iLinux85 23.12.2011 / 06:58

2 respostas

7

Você pode limitar o comando ao usar um par de chaves ssh usando command="...." em ~/.ssh/authorized_keys file. Exemplo tirado de aqui :

$ cat ~/.ssh/authorized_keys 
command="/usr/local/bin/rsync --server -vlogDtprz --delete . /tmp",no-pty,no-agent-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1y[...] kattoo@spaghetti
    
por 23.12.2011 / 07:47
4

O rsync inclui um script de exemplo rrsync que pode restringir o rsync.

Exemplo:

command="/usr/local/bin/rrsync -ro /data",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa [...]

Dessa forma, você não precisa codificar a linha de comando do cliente no servidor.

    
por 06.07.2012 / 15:55