Ваша локальная оболочка (вероятно, bash) расширяется
user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4}
в:
user@host:/home/user/something/file1 user@host:/home/user/something/folder1 user@host:/home/user/something/folder2 user@host:/home/user/something/folder3 user@host:/home/user/something/folder4
Вместо этого вы можете сделать:
scp -r -P PORT user@host:"/home/user/something/file1 /home/user/something/folder1 /home/user/something/folder2 /home/user/something/folder3 /home/user/something/folder4" folder/folder2/
или, если вы знаете, что пользовательская оболочка входа на удаленном конце - bash, вы также можете использовать расширение скобки:
scp -r -P PORT user@host:"/home/user/something/{file1,folder1,folder2,folder3,folder4}" folder/folder2/
чтобы удаленная оболочка разделяла строку на аргументы вместо локальной оболочки.
id.rsa
будет иметь600
разрешения иssh
даже не будет работать, если это не так. Это означает, что он безопасен от всех, ноroot
ничто не является безопасным отroot
паролей.ssh-keygen
и 2) ssh / scp будет жаловаться и запрашивать пароль, если файл может быть прочитан кем-либо еще. По крайней мере, в Linux в любом случае.scp
не очень умен: при задании нескольких аргументов командной строки, являющихся файлами с одного и того же удаленного хоста, он открывает новое соединение для каждого аргумента.Вы можете использовать
rsync
вместо этогоscp
, это умнее (и другими способами).Другой подход заключается в передаче одного аргумента,
scp
который описывает несколько файлов .Другой подход - настроить вашу систему так, чтобы вам не приходилось все время проходить аутентификацию. Желательно настроить аутентификацию по ключу , которая в большинстве случаев более удобна и безопасна. В качестве альтернативы или дополнения настройте общий доступ к соединению , чтобы вам нужно было проходить аутентификацию только один раз за сеанс. В любом случае установите псевдоним, чтобы вам не приходилось каждый раз указывать имя пользователя и порт. В вашем
~/.ssh/config
:Запустите,
ssh -Nf nick
чтобы открыть соединение, а затем все последующие соединенияnick
будут использовать текущее соединение. Теперь вы можете просто запуститьисточник