Назад | Перейти на главную страницу

rsync с использованием логина кейгена в сценарии bash

Итак, я установил для сервера SSH-вход без пароля. Я могу запустить rsync из командной строки, он отлично работает и не запрашивает у меня пароль:

rsync -avz -e ssh myDir user@X.X.X.X:/place/myDir

Однако, когда я помещаю это в сценарий bash и выполняю его, он перестает запрашивать у меня пароль.

#!/bin/bash

rsync -avz -e ssh myDir user@X.X.X.X:/place/myDir

Почему это происходит? Что мне следует искать, чтобы это остановить?

Возможно, вам потребуется добавить путь к вашему файлу удостоверения следующим образом:

rsync -avz -e "ssh -i /home/user/.ssh/id_rsa" myDir user@X.X.X.X:/place/myDir

Вам необходимо установить свой ssh-агент. Я использую для этого брелок.

http://www.ibm.com/developerworks/library/l-keyc2/

Мне нравится настраивать конфигурации ssh в файле конфигурации - ~ / .ssh / config

Это выглядит так

Host xxx-master
HostName X.X.X.X
User user
IdentityFile ~/.ssh/xxx_id_rsa
ControlMaster yes
ControlPath ~/.ssh/xxx_ctrl_path

Host xxx
HostName X.X.X.X
User user
ControlPath ~/.ssh/xxx_ctrl_path

Затем я ssh xxx-master и он запрашивает у меня кодовую фразу. Пока я продолжаю входить в xxx-master, я могу ssh xxx без парольной фразы.

Это лучше, чем ssh agent? Я не знаю. Я использую этот метод, потому что еще не разобрался с ssh-agent.