Как скопировать файлы с одного сервера на другой с помощью scp или sftp в скрипте оболочки?

Как скопировать файлы с одного сервера на другой с помощью scp или sftp в скрипте оболочки?

В настоящее время я создаю скрипт, в котором я хочу копировать файлы с одного сервера на другой, используя либо , scpлибо sftp; меня смущает аутентификация.

Если я воспользуюсь scp, то как я сообщу пароль?

решение1

Для такого автоматизированного использования вам не следует использовать аутентификацию по паролю, вам следует использовать аутентификацию на основе ключа. При использовании аутентификации на основе ключа подключение будет происходить без необходимости ввода пароля.

Вам нужно сгенерировать пару ключей на стороне, где вы используете SSH-клиент, а затем скопировать свой открытый ключ на SSH-сервер. Вы найдете бесконечные страницы о том, как это сделать, но вот одна из них:

https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/

решение2

Используйте ключи SSH для большей безопасности

Или вы можете установить sshpass и сделать что-то вроде:

sshpass -p "password" scp file.txt user@machine:/path

Связанный контент