Como ativar o preenchimento automático para caminhos remotos ao usar o scp?

36

Eu copiei remotamente um arquivo para o meu laptop usando:

scp someFile [email protected]:/home/USER/put/it/some/where/oh/damn/you/here

Eu quero ser capaz de autocompletar o caminho remoto pressionando a aba.

    
por k0pernikus 03.03.2012 / 18:10

3 respostas

21

Certifique-se de ativar o autocompletar sofisticado. Em muitas distribuições, isso significa que seu ~/.bashrc precisa conter . /etc/bash_completion .

Você precisará configurar a autenticação sem senha, ou seja, com uma chave já carregada em ssh-agent .

O estabelecimento de uma conexão SSH é lento, para que você possa acelerar bastante as conclusões, estabelecendo uma conexão de uma vez por todas e usando essa conexão depois disso. A maneira relativamente complicada de fazer isso é abrir uma conexão SSH principal com ssh -N -M target-host após configurar as conexões mestre-escravo em ~/.ssh/config ; consulte Múltiplas sessões ssh no comando único para instruções ( você precisa das opções ControlMaster e ControlPath ).

O método simples é montar o sistema de arquivos remoto através do SSHFS e usar cp com a conclusão normal do shell.

mkdir ~/remote
sshfs [email protected]:/home/USER ~/remote
cp -p someFile ~/remote/put/it/some/where/oh/damn/you/here
    
por 05.03.2012 / 18:30
7

Tudo o que eu precisava fazer era adicionar minha chave pública à máquina remota:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"

E agora scp tab-complete.

Veja aqui se você precisa configurar suas chaves primeiro.

    
por 05.03.2012 / 12:27
2

Você pode mudar para lftp em vez de usar scp. Ele oferece uma interface consistente para transferência de arquivos via ftp, sftp e ssh, incluindo o preenchimento automático que você está procurando e mais (por exemplo, curingas).

lftp fish://user@machine

abre uma conexão sobre o ssh como você faz acima com o scp. Muitas máquinas suportam sftp: // também, o que é ainda melhor na minha experiência.

    
por 04.03.2012 / 00:08