Подтвердить что ты не робот

Обход Rsync Prompt "Вы уверены, что хотите продолжить подключение"

Как вы обходите этот вопрос или добавляете флаг, который автоматически отвечает на это?

Потому что я пытаюсь написать script, и этот вопрос продолжает останавливать процесс rsync, так как нет способа ответить на него в script при появлении запроса.

4b9b3361

Ответ 1

Установите для параметра StrictHostKeyChecking значение no либо в файле конфигурации, либо через -o.

Используйте параметр e rsync для передачи параметров ssh:

-e "ssh -o StrictHostKeyChecking=no"

Ответ 2

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

[email protected]:~$ git clone [email protected]:viperks/viperks-api.git
Cloning into 'viperks-api'...
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

Обратите внимание на отпечаток ключа RSA...

Итак, это вещь SSH, это будет работать для git через SSH и только связанные с SSH вещи вообще...

[email protected]:~$ nmap bitbucket.org --script ssh-hostkey

Starting Nmap 7.01 ( https://nmap.org ) at 2016-10-05 10:21 EDT
Nmap scan report for bitbucket.org (104.192.143.3)
Host is up (0.032s latency).
Other addresses for bitbucket.org (not scanned): 104.192.143.2 104.192.143.1 2401:1d80:1010::150
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
| ssh-hostkey:
|   1024 35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)
|_  2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 42.42 seconds

Сначала установите nmap на ваш ежедневный драйвер. nmap очень полезен для некоторых вещей, таких как обнаружение открытых портов и это - ручная проверка отпечатков SSH. Но вернемся к тому, что мы делаем.

Хорошо. Я либо скомпрометирован в нескольких местах и ​​машинах, которые я проверил, либо более правдоподобное объяснение всего, что происходит с hunky dory.

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

Независимо от того, вернемся к исходной строке, которую мы можем увидеть в контексте ниже.

[email protected]:~$ ssh-keyscan bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
no hostkey alg
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-129
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-123
no hostkey alg

Итак, раньше времени у нас есть способ запросить форму идентификации от исходного хоста.

В этот момент мы вручную так же уязвимы, как и автоматически: строки соответствуют, у нас есть базовые данные, которые создают отпечаток пальца, и мы могли бы запросить данные базы (предотвращая столкновения) в будущем.

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

Файл known_hosts в этом случае не использует записи открытого текста. Вы узнаете хешированные записи, когда увидите их, они выглядят как хеши со случайными символами вместо xyz.com или 123.45.67.89.

[email protected]:~$ ssh-keyscan -t rsa -H bitbucket.org
# bitbucket.org SSH-2.0-conker_1.0.257-ce87fba app-128
|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

Первая строка комментариев вступает в ярость, но вы можете избавиться от нее простым переадресацией через соглашение " > " или " → ".

Как я сделал все возможное, чтобы получить неиспользованные данные, которые будут использоваться для идентификации "хоста" и доверия, я добавлю это удостоверение в мой файл known_hosts в каталоге ~/.ssh. Поскольку он теперь будет идентифицирован как известный хост, я не получу подсказку, упомянутую выше, когда вы были молодым человеком.

Спасибо, что присоединился ко мне, вот и все. Я добавляю ключ RSA bitbucket, чтобы я мог взаимодействовать с моими репозиториями git в неинтерактивном виде как часть рабочего процесса CI, но все, что вы делаете, что хотите.

#!/bin/bash
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old && echo "|1|yr6p7i8doyLhDtrrnWDk7m9QVXk=|LuKNg9gypeDhfRo/AvLTAlxnyQw= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==" >> ~/.ssh/known_hosts

Итак, как вы останетесь девственницей на сегодня. Вы можете сделать то же самое с github, выполнив аналогичные указания в свое время.

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

НЕПРАВИЛЬНО ssh -oStrictHostKeyChecking = no hostname [команда]

НЕПРАВИЛЬНО ssh-keyscan -t rsa -H имя_хоста → ~/.ssh/known_hosts

Не делайте ни одной из вышеуказанных вещей, пожалуйста. Вам предоставляется возможность увеличить ваши шансы избежать того, чтобы кто-то подслушивал ваши передачи данных через человека в средней атаке - воспользуйтесь этой возможностью. Разница заключается в буквальном подтверждении того, что у вас есть RSA-ключ, и вы знаете, как получить эту информацию, чтобы сравнить их, чтобы вы могли доверять соединению. Просто помните, что больше сравнений с разных компьютеров и сетей обычно увеличивает вашу способность доверять подключению.