Правильный вариант для аутентификации SSH?
Я использую rdiff-backup для отправки инкрементных резервных копий на мой локальный сервер. Мой хост - Windows, а мой - Linux. Я пытаюсь заставить мой скрипт выполнить следующее:
command = os.system('rdiff-backup --exclude "**.dropbox**" --exclude "**.ini**" --remote-schema "ssh -i C:/Users/Adam/.ssh/id_rsa %s -p1019 rdiff-backup --server" C:/Users/Adam/Dropbox pi@192.168.0.5::/mnt/disk1/Adam/Dropbox')
Тем не менее, во время выполнения я повышен с:
Could not create directory '/home/Adam/.ssh'. The authentictity of host '[192.168.0.5]:1019 ([192.168.0.5]:1019)' can't be established. RSA key fingerprint is 2e:7c:f0:0c:4b:8d:fa:e1:21:a1:32:81:a0:e1:11:11. Are you sure you want to continue connecting (yes/no)?
Я думал вариант -i C:/Users/Adam/.ssh/id_rsa
перевернет это? Нецелесообразно запрашивать это при выполнении скрипта. Как я могу обойти это, поддерживая аутентификацию и безопасность (так как скоро я напишу аналогичный скрипт для моего ноутбука, но для отправки инкрементных резервных копий через общедоступные и удаленные машины)?
Обновить:
Пожалуйста, прочитайте ответ Гравити вместе с комментариями, чтобы помочь себе понять, где я ошибся и как я это исправил - конечно, с помощью Гравити. Чтобы решить проблему с Cygwin, говорят Cannot create directory /home/USERNAME/.ssh
затем посмотрите этот пост в блоге.
"Сначала найдите файл с именем passwd
в вашем C:\path\to\cygwin\etc
каталог и откройте его с помощью WordPad. Во-вторых, заменить текст /home/YOUR_NAME
с /cygdrive/c/Documents and Settings/YOUR_NAME
Наконец, сохраните файл."
3 ответа
Что ты видишь...
The authentictity of host '[192.168.0.5]:1019 ([192.168.0.5]:1019)' can't be established.
... никак не связан с ключом, который вы используете для аутентификации пользователя. В сообщении говорится об аутентификации хоста - убедитесь, что сервер правильный.
Обычно приглашение является однократным, так как открытый ключ сервера хранится в ~/.ssh/known_hosts
, Тем не менее, в вашем случае, ssh
не может создать этот файл, потому что он не может создать родительский каталог:
Could not create directory '/home/Adam/.ssh'.
Скорее всего, это не удается, потому что /home/Adam
сам не существует, или потому что /home/Adam/.ssh
это что-то еще, чем каталог. Попробуйте создать его вручную, используя mkdir
,
(Также: помогает чтение сообщений об ошибках.)
Я была такая же проблема. SSH MINGW на самом деле является домом для пути /home//.ssh
Поставь там свои конфиги SSH и все заработает
Вам нужно проверить свои ~/.ssh/known_hosts на предмет записи 192.168.0.5, которая могла измениться.
Это является частью механизма безопасности на стороне клиента ssh. Пожалуйста, обратитесь к документации ssh и man-странице для получения дополнительной информации. Там нет быстрого доступа к пониманию безопасности, разместив вопросы на usersuper.ru и co.
Однако, если ваш вопрос заключался в том, как перезаписать и преднамеренно игнорировать это, добавьте этот параметр в командную строку:
ssh -o StrictHostKeyChecking=no <...>
(И, пожалуйста, не вините меня за последствия этого.)
Повеселись.