2013-05-16 3 views
0

У меня есть сценарий, который необходимо скопировать файл на удаленный компьютер:Как скопировать файлы на удаленный компьютер с помощью скрипта Bash?

cp -R "${DEST_FOLDER}" "${SRC_FOLDER}" 

Как я могу это сделать, если удаленный компьютер требует имя пользователя и пароль для доступа?

Как мне войти на этот компьютер с помощью скрипта bash?

Благодаря

+1

Используйте '' scp' или rsync' с аутентификацией с открытым ключом. – Barmar

+1

сделайте то, что сказал @Barmar, или установите ваш удаленный каталог в вашу систему. – Kent

ответ

2

сам Bash не позволит вам получить доступ к удаленному хосту (очевидно), но вы можете использовать SSH:

Шаг 1: На локальном компьютере генерировать ключ для выполнения аутентификации беспарольного позже

$ ssh-keygen 

Он попросит вас ввести кодовую фразу. Если вы хотите, чтобы ваш скрипт bash полностью не был интерактивным, вы можете отказаться от использования какого-либо пароля.

Шаг 2: Скопируйте вам публичный ключ на удаленный хост:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 

Шаг 3: Использование scp для копирования файлов:

$ scp -r local_file [email protected]:/remote_dest_dir/ 
+0

Ключи SSH с пустой парольной фразой заставляют вашу систему удаленной системы зависеть от вашей локальной машины (т. Е. Доступа к вашему файлу секретного ключа). Предпочтительным было бы ** не ** оставить кодовую фразу пустой и использовать 'ssh-agent' /' keychain', поэтому вам нужно ввести свою кодовую фразу, но один раз за сеанс. – DevSolar

Смежные вопросы