Copiei remotamente um arquivo para o meu laptop usando:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Quero poder concluir automaticamente o caminho remoto pressionando a guia.
bash
ssh
autocomplete
k0pernikus
fonte
fonte
rsync
, o que, na minha opinião, é muito superior ascp
zsh
.scp
menos funciona aqui. Você precisa de uma chave ssh já adicionada a um agente ssh.Respostas:
Verifique se você ativou o preenchimento automático sofisticado. Em muitas distribuições, isso significa que você
~/.bashrc
precisa conter. /etc/bash_completion
.Você precisará configurar a autenticação sem senha, ou seja, com uma chave já carregada
ssh-agent
.O estabelecimento de uma conexão SSH é lento; portanto, você pode acelerar consideravelmente as conclusões estabelecendo uma conexão de uma vez por todas e usando essa conexão posteriormente. A maneira relativamente complicada de fazer isso é abrir uma conexão SSH principal
ssh -N -M target-host
depois de configurar as conexões mestre-escravo~/.ssh/config
; consulte Várias sessões ssh em comando único para obter instruções (você precisa das opçõesControlMaster
eControlPath
).O método simples é montar o sistema de arquivos remoto sobre SSHFS e usá-lo
cp
com a conclusão normal do shell.fonte
/etc/bash_completion
fonte~/.bash_completion
. Quero poder ter esse recurso em um servidor remoto para o qual não posso gravar/etc/
e não existe/etc/bash_completion
(embora exista/etc/bash_completion.d/
. Existe uma versão que seria segura para ser executada no meu diretório pessoal? Há pelo menos uma referência a ~ / .bash_completion então eu tenho medo há mais estou em falta e poderia haver um circuito cíclico ou qualquer outra coisa que pode causar erros.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 a
scp
guia é concluída.Veja aqui se você precisa configurar suas chaves primeiro.
fonte
ssh-copy-id
é para, mais ele vai lidar com as permissões do arquivo para você.Você pode mudar para lftp em vez de usar scp. Ele fornece uma interface consistente e agradável para transferência de arquivos via ftp, sftp e ssh, incluindo o preenchimento automático que você está procurando e muito mais (ou seja, curingas).
abre uma conexão através do ssh como você faz acima com o scp. Muitas máquinas também suportam sftp: //, o que é ainda melhor na minha experiência.
fonte
Como o @Giles disse , verifique se a instalação foi concluída automaticamente corretamente, se você tem a tecla ssh na máquina.
Adicionar essa configuração ao meu
~/.ssh/config
fez uma enorme diferença na velocidade.Isso criará uma conexão mestre para cada host.
O 10s persistir dará algum tempo para ver o diretório antes que a conexão seja fechada automaticamente.
Sem a persistência, você terá que recriar uma conexão e isso atrasará a conclusão da guia.
Exemplo
~$ scp mymachine:~/pa
ABA~$ scp mymachine:~/path/to
ABA~$ scp mymachine:~/path/to/file
ABAfonte