J'ai copié à distance un fichier sur mon ordinateur portable en utilisant:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Je veux pouvoir compléter automatiquement le chemin distant en appuyant sur l'onglet.
bash
ssh
autocomplete
k0pernikus
la source
la source
rsync
, ce qui à mon avis est de loin supérieur àscp
zsh
.scp
aussi, au moins ça marche ici. Vous avez besoin d'une clé ssh déjà ajoutée à un agent ssh.Réponses:
Assurez-vous que vous avez activé l'auto-complétion de fantaisie. Sur de nombreuses distributions, cela signifie que vos
~/.bashrc
besoins doivent être contenus. /etc/bash_completion
.Vous aurez besoin d'une authentification sans mot de passe, c'est-à-dire avec une clé déjà chargée
ssh-agent
.Etablir une connexion SSH est lent, vous pouvez donc accélérer considérablement les complétions en établissant une connexion une fois pour toutes et en utilisant cette connexion par la suite. La façon relativement compliquée de le faire est d'ouvrir une connexion maître SSH
ssh -N -M target-host
après avoir établi des connexions maître-esclave~/.ssh/config
; voir Plusieurs sessions SSH en une seule commande pour des instructions (vous avez besoin des optionsControlMaster
etControlPath
.).La méthode simple consiste à monter le système de fichiers distant sur SSHFS et à l'utiliser
cp
avec un achèvement normal du shell.la source
/etc/bash_completion
source~/.bash_completion
. Je veux être en mesure d'avoir cette fonction sur un serveur distant où je ne peux pas écrire/etc/
et il n'y a pas/etc/bash_completion
(bien qu'il y ait/etc/bash_completion.d/
. Y at - il une version qui serait sûr de faire tourner de mon répertoire? Il y a au moins une référence à ~ / .bash_completion donc je crains qu'il ne me manque plus de choses et qu'il pourrait y avoir une boucle cyclique ou autre chose qui pourrait causer des erreurs.Tout ce que j'avais à faire était d'ajouter ma clé publique à la machine distante:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"
Et maintenant, l'
scp
onglet est complet.Regardez ici si vous devez d'abord configurer vos clés.
la source
ssh-copy-id
sert, en plus il gérera les autorisations de fichiers pour vous.Vous pouvez passer à lftp au lieu d’utiliser scp. Il vous offre une interface cohérente agréable pour le transfert de fichiers via ftp, sftp et ssh, y compris la saisie semi-automatique que vous recherchez et plus encore (par exemple, des caractères génériques).
ouvre une connexion sur ssh comme vous le faites ci-dessus avec scp. De nombreuses machines supportent sftp: // aussi, ce qui est encore plus agréable selon mon expérience.
la source
Comme @Giles l'a dit , assurez-vous que la configuration est terminée automatiquement et que vous avez la clé ssh sur la machine.
L'ajout de cette configuration à ma
~/.ssh/config
fait une énorme différence dans la vitesse.Cela créera une connexion principale pour chaque hôte.
La persistance de 10 vous laisse un peu de temps pour voir le répertoire avant la fermeture automatique de la connexion.
Sans la persistance, vous devrez recréer une connexion et cela ralentira l'achèvement de votre onglet.
Exemple
~$ scp mymachine:~/pa
LANGUETTE~$ scp mymachine:~/path/to
LANGUETTE~$ scp mymachine:~/path/to/file
LANGUETTEla source