bash-completion (que está disponível no Cygwin, Debian, Ubuntu e sem dúvida muitas outras distribuições) suporta scp auto-completion, desde que o shell possa acessar o servidor necessário sem nenhum aviso (ele usa ssh no modo batch, veja o ssh_config(5) página de manual para detalhes).
A maneira mais fácil de ativar isso é usar ssh-agent . Isso provavelmente está ativado por padrão pelo seu ambiente de área de trabalho; simplesmente tente
ssh-add
para adicionar sua chave padrão ao agente atualmente em execução (se houver). Se nenhum agente estiver em execução, você pode iniciar um executando
eval $(ssh-agent)
Quando sua chave for conhecida pelo agente, você poderá concluir automaticamente os comandos scp que envolvem servidores que você pode acessar com a chave.
Tenho certeza de que zsh também suporta scp preenchimento automático com as mesmas advertências; o suporte necessário está no pacote zsh-common no Debian. Ele precisa estar ativado no seu .zshrc com algo como
autoload -U compinit && compinit
(que carrega todas as conclusões suportadas).