Я должен выполнить автоматизацию SFTP (для избавлений от подсказки пароля). Как я могу сделать это?
Необходимо создать общественность/закрытый ключ. Как я могу автоматизировать передачу SFTP между двумя серверами?
Мое предложение использует SSH authorized_keys. Необходимо будет создать ключ на стороне клиента (использующий ssh-keygen) и затем скопировать открытый ключ в целевую сторону.
client-machine% ssh-keygen -t rsa
client-machine% scp ~/.ssh/id_rsa.pub user@target-machine:~/.ssh/authorized_keys2
Обратите внимание, что, если Вы хотите получить доступ к целевой машине от двух или больше "клиентов", Вы не можете скопировать id_rsa.pub в authorized_keys2 непосредственно. Необходимо будет открыть authorized_keys2 и вставить id_rsa.pub от каждой клиентской машины на нем (или использовать строку ниже для добавления содержания),
client-machine% cat ~/.ssh/id_rsa.pub | ssh user@target-machine \
'cat >> .ssh/authorized_keys'
Теперь можно использовать ssh/scp без пользователя/информации о пароле:
client-machine% ssh user@target-machine
client-machine% scp file user@target-machine:~/file
Если безопасность не является беспокойством затем, пароль может быть в открытом тексте в Вашем сценарии. Например, на Microsoft Windows с помощью pscp от пакета PuTTY.
Пример:
"d:\putty0.58\pscp" -pw MyNotSoSecretPassWord u:\outGoing\someFileToTransfer.7z kingOfTheHill@www.pil.sdu.dk:/srv/www/htdocs/1/MSQuantDynamics/someFileToTransfer.7z
Пароль: MyNotSoSecretPassWord. Имя пользователя: kingOfTheHill. Хост: www.pil.sdu.dk.
sftp сервер в нашем случае работает на основанном на Linux сервере.
Смотрите на комплект автоматизации VisualCron. Это создало в автоматизации для SFTP и SSH, а также нормального FTP. http://www.visualcron.com