Copié remotamente un archivo a mi computadora portátil usando:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Quiero poder completar automáticamente la ruta remota presionando la pestaña.
bash
ssh
autocomplete
k0pernikus
fuente
fuente
rsync
, lo que en mi opinión es muy superior ascp
zsh
.scp
, al menos funciona aquí. Necesita una clave ssh ya agregada a un agente ssh.Respuestas:
Asegúrese de haber activado el autocompletado sofisticado. En muchas distribuciones, esto significa que
~/.bashrc
necesita contener. /etc/bash_completion
.Deberá tener configurada la autenticación sin contraseña, es decir, con una clave que ya esté cargada
ssh-agent
.Establecer una conexión SSH es lento, por lo que puede acelerar considerablemente las finalizaciones estableciendo una conexión de una vez por todas y utilizando esa conexión a partir de entonces. La forma relativamente complicada de hacerlo es abrir una conexión SSH maestra
ssh -N -M target-host
después de configurar las conexiones maestro-esclavo en~/.ssh/config
; vea Múltiples sesiones ssh en un solo comando para obtener instrucciones (necesita las opcionesControlMaster
yControlPath
).El método simple es montar el sistema de archivos remoto sobre SSHFS y usarlo
cp
con la terminación normal del shell.fuente
/etc/bash_completion
fuente~/.bash_completion
. Quiero poder tener esta función en un servidor remoto donde no puedo escribir/etc/
y no existe/etc/bash_completion
(aunque sí existe/etc/bash_completion.d/
. ¿Existe una versión que sea segura de ejecutar desde mi directorio de inicio? Hay al menos una referencia a ~ / .bash_completion, así que me temo que faltan más y podría haber un ciclo cíclico u otra cosa que pueda causar errores.Todo lo que necesitaba hacer era agregar mi clave pública a la máquina remota:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"
Y ahora la
scp
pestaña completa.Mire aquí si necesita configurar sus llaves primero.
fuente
ssh-copy-id
sirve, además manejará los permisos de archivo por usted.Puede cambiar a lftp en lugar de usar scp. Le brinda una interfaz agradable y consistente para la transferencia de archivos a través de ftp, sftp y ssh, incluido el autocompletado que está buscando y más (es decir, comodines).
abre una conexión a través de ssh como lo hace arriba con scp. Muchas máquinas también admiten sftp: //, lo cual es aún mejor en mi experiencia.
fuente
Como ha dicho @Giles , asegúrese de que la configuración de autocompletar correctamente tenga su clave ssh en la máquina.
Agregar esta configuración a mi
~/.ssh/config
hizo una gran diferencia en la velocidad.Esto creará una conexión maestra para cada host.
La persistencia de 10 segundos le dará tiempo para ver el directorio antes de que la conexión se cierre automáticamente.
Sin la persistencia, tendrá que volver a crear una conexión y ralentizará la finalización de su pestaña.
Ejemplo
~$ scp mymachine:~/pa
LENGÜETA~$ scp mymachine:~/path/to
LENGÜETA~$ scp mymachine:~/path/to/file
LENGÜETAfuente