Rsync без пароля по SSH без аутентификации ключа [Небезопасно]

Я хочу настроить задание RSync, которое будет подключаться через SSH .

У меня есть компьютер (backup @ myhost) и удаленный хост (test @ remhost), и мне нужно сделать резервную копию папки ~ / something со всем ее содержимым. Пользовательский тест ssh имеет доступ только на ЧТЕНИЕ ко всем файлам и папкам в папке ~ /. Я хочу использовать rsync для копирования папки test @ remhost: ~ / something в папку backup @ myhost: ~ / bak.

Для этой цели я использую следующую команду через BASH в Ubuntu 11.10 (Oneiric):

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

После нажатия Enter я получаю следующее:

test@remhost's password:

Я ввожу пароль, и rsync работает.

Я хочу, чтобы указанная выше команда автоматически вводила пароль и передавала его в качестве параметра или вводила его автоматически и запускала задание.

Я пробовал выполнить rsync -avz -e ssh test: password @ remhost: ~ / something / ~ / bak / , но он все равно запрашивает пароль, и это меня раздражает.

Я не хочу слышать о каких-либо ключах (RSA, DSA или любых других). Мне просто нужна простая команда, которая позволила бы мне войти в систему и выполнить свою работу.

РЕДАКТИРОВАТЬ: Возможный сценарий, если аутентификация с открытым ключом отключена, и вы не можете это изменить. Например. если вы используете OpenSSH, вам потребуются права суперпользователя на сервере, чтобы отредактировать файл sshd_config и добавить PubkeyAuthentication yes .

РЕДАКТИРОВАТЬ: Это то, что наконец сработало для меня:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Обратите внимание, что этот метод не считается безопасным, поскольку он отправляет пароль в виде простого текста и уязвим для атак типа «злоумышленник в середине». Рекомендуется использовать аутентификацию ключа для большей безопасности.

12
задан 13 February 2012 в 14:07

5 ответов

Я не могу представить ситуацию, когда аутентификация с открытым ключом без ключевой фразы не была бы лучшим решением для автоматического входа в систему через ssh / rsync.

В любом случае expect должен быть способом достижения того, что вы хотите сделать. Вы не можете передать пароль по ssh, но это нечто очень похожее. Как это сделать, ответ здесь здесь, в стеке потока .

0
ответ дан 13 February 2012 в 14:07

возможно, попробуйте sshpass .

кажется достаточно простым в использовании ... он также доступен через apt.

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

Обратите внимание на заявление об отказе от ответственности в этом учебнике, касающееся видимости вашего пароля.


Для всех, кому нужно это сделать:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
0
ответ дан 13 February 2012 в 14:07

Первое, что нужно сделать, это сделать ssh без passowrd/bypass пароля для входа, как вы можете видеть, мы можем использовать ssh-copy-id -i ./ssh/id_rsa.pub для целевого компьютера.

После этого теста машина может быть удаленно с помощью ssh без пароля, затем rsync на следующем пути, конечно, с локальной машины на target/server машину

0
ответ дан 13 February 2012 в 14:07

Я обнаружил, что sshpass работает, но так как терманал говорит SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':, вам нужно запустить его примерно так:

sshpass -P passphrase -p 'password' rsync /path/to hostname:/destination/path -av --progress -e ssh

Где -P указывает, какое приглашение искать, я выяснил это с помощью запустив sshpass -v и выяснив, что он ищет фразу password, которой там нет.

0
ответ дан 13 February 2012 в 14:07

Вариант вашего решения, который более безопасен для угроз безопасности, состоит в том, чтобы сохранить ваш пароль в файле с ограниченными разрешениями и использовать флаг -f с shpass:

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

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

0
ответ дан 13 February 2012 в 14:07

Другие вопросы по тегам:

Похожие вопросы: