scp
no es muy inteligente: cuando se le dan múltiples argumentos de línea de comando que son archivos del mismo host remoto, abre una nueva conexión para cada argumento.
Puede usar en rsync
lugar de scp
, es más inteligente de esta manera (y de otras maneras).
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Otro enfoque es pasar un argumento único scp
que describa múltiples archivos .
Un enfoque diferente es configurar su sistema para que no tenga que autenticarse todo el tiempo. Preferiblemente, configure la autenticación de clave , que en la mayoría de los escenarios es más conveniente y más segura. Alternativamente, o además, configure el uso compartido de la conexión , de modo que solo necesite autenticarse una vez por sesión. En cualquier caso, configure un alias para que no tenga que especificar el nombre de usuario y el puerto cada vez. En su ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Ejecutar ssh -Nf nick
para abrir una conexión, y luego todas las conexiones posteriores se conectarán a nick
la conexión existente. Ahora puedes correr
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/