scp
non è molto intelligente: quando vengono forniti più argomenti della riga di comando che sono file dallo stesso host remoto, apre una nuova connessione per ogni argomento.
Puoi usare rsync
invece di scp
, è più intelligente in questo modo (e in altri modi).
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Un altro approccio è passare un singolo argomento a scp
quello che descrive più file .
Un approccio diverso consiste nell'impostare il sistema in modo da non doverti autenticare continuamente. Preferibilmente, impostare l'autenticazione con chiave , che è nella maggior parte degli scenari sia più conveniente che più sicura. In alternativa, o in aggiunta, imposta la condivisione della connessione , in modo da autenticarti solo una volta per sessione. In ogni caso, imposta un alias in modo da non dover specificare il nome utente e la porta ogni volta. Nel tuo ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Esegui ssh -Nf nick
per aprire una connessione, quindi tutte le connessioni successive nick
verranno trasferite sulla connessione esistente. Ora puoi semplicemente correre
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/