Depois de copiar seu arquivo de chaves para o servidor:
ssh-copy-id -i ~/.ssh/id_rsa_for_scp [email protected]
(Para simplificar o exemplo, vamos assumir que a máquina do cliente ~ / .ssh / config já está configurada. Para mais detalhes sobre ~/.ssh/config
run man ssh_config
)
Host testmachine
Hostname 192.168.1.1
User legendaryuser
BatchMode yes
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_for_scp
Você precisará editar o arquivo /home/legendaryuser/.ssh/authorized_keys
do servidor.
De:
ssh-rsa AAAAAC3nZCXExxHUEBR...
Para: (esta versão permite download e upload)
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo Access Denied; fi" ssh-rsa AAAAAC3nZCXExxHUEBR...
Se você quiser limitar o scp ao "modo somente download" e apenas aos arquivos de um diretório específico, faça:
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp[[:space:]]-f[[:space:]]/full/path/to/dir/.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo Access Denied; fi" ssh-rsa AAAAAC3nZCXExxHUEBR...
Por último, vamos adicionar mais algumas restrições à chave, apenas para garantir:
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp[[:space:]]-f[[:space:]]/full/path/to/dir/.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo ERRO Access Denied; fi",no-pty,no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAAC3nZCXExxHUEBR...
Você pode ver mais detalhes sobre o arquivo authorized_keys
executando:
man sshd
Ps: Você também pode adicionar from=xxx.xxx.xxx.xxx
ao limite do uso da chave de um endereço IP específico ou rede.
Pps: Desculpe pelo meu inglês, eu não sou um falante nativo.