Рейтинг:1

Я больше не могу подключиться по SSH к машине, к которой у меня есть проводное подключение. Как мне вернуться?

флаг ru

Я разрабатываю программное обеспечение на пользовательской плате под управлением Linux. Я получаю доступ к этой плате через ssh по проводному соединению. У меня на машине есть USB-адаптер Ethernet, а затем кабель Ethernet подключается к этой пользовательской плате. У меня были настроены ключи ssh, поэтому мне не нужно было каждый раз вводить пароль. Все работало нормально, пока я не поделился Интернетом с этой платой и не запустил git pull, чтобы обновить на ней программное обеспечение. (Кстати, это сработало нормально). После того, как я изменил ip-адрес обратно на ручной и вернул старый ip, я получил предупреждение о смене хоста. Это из интернета, поэтому IP-адреса не совпадают, но выглядело это примерно так:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
@ ВНИМАНИЕ: ИДЕНТИФИКАЦИЯ УДАЛЕННОГО ХОСТА ИЗМЕНИЛАСЬ! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
ВОЗМОЖНО, ЧТО КТО-ТО ДЕЛАЕТ ЧТО-ТО НЕЧЕТНОЕ!
Кто-то может подслушивать вас прямо сейчас (атака «человек посередине»)!
Также возможно, что ключ хоста был только что изменен.
Отпечаток ключа RSA, отправленный удаленным хостом,
51:82:00:1c:7e:6f:ac:ac:de:f1:53:08:1c:7d:55:68.
Пожалуйста, обратитесь к системному администратору.
Добавьте правильный ключ хоста в /Users/isaacalves/.ssh/known_hosts, чтобы избавиться от этого сообщения.
Оскорбительный ключ RSA в /Users/isaacalves/.ssh/known_hosts:12
Ключ хоста RSA для 104.131.16.158 изменился, и вы запросили строгую проверку.
Ошибка проверки ключа хоста.

Меня постоянно спрашивают пароль, когда я пытаюсь подключиться по ssh, хотя этого не следует делать. Самая своеобразная часть в том, что когда я набираю пароль, он его не принимает. Как я узнаю, что это правильный пароль? Потому что я использую экран для последовательного подключения к плате и вошел в систему с этим паролем через экран. Затем я могу получить доступ к плате (хосту) через экран, просто этот экран очень медленный, и мне нужно ssh для vscode и других вещей.

Я даже удалил ssh-клиент на своем компьютере и переустановил его. Ничего такого.Я удалил папку known_hosts на своем компьютере, и это не помогло. Хост может использовать ssh на свой собственный IP-адрес (а не на петлю), поэтому я считаю, что он принимает запросы ssh. (Если только там нет короткого замыкания и на самом деле он не использует ssh, когда использует свой собственный IP-адрес. Но я думаю, что это так).

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

Попытка SSH:

ellis77@CB461-EE10955:~/.ssh$ ssh [email protected] -vvv
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f 31 марта 2020 г.
debug1: Чтение данных конфигурации /home/ellis77/.ssh/config
debug1: Чтение данных конфигурации /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: включение /etc/ssh/ssh_config.d/*.conf не соответствует ни одному файлу
debug1: /etc/ssh/ssh_config строка 21: Применение параметров для *
debug2: resolve_canonicalize: имя хоста 169.254.132.152 — это адрес
отладка2: ssh_connect_direct
debug1: подключение к порту 22 169.254.132.152 [169.254.132.152].
отладка1: соединение установлено.
debug1: файл идентификации /home/ellis77/.ssh/id_rsa типа 0
debug1: файл идентификации /home/ellis77/.ssh/id_rsa-cert type -1
debug1: файл идентификации /home/ellis77/.ssh/id_dsa тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_dsa-cert type -1
debug1: файл идентификации /home/ellis77/.ssh/id_ecdsa тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_ecdsa-cert type -1
debug1: файл идентификации /home/ellis77/.ssh/id_ecdsa_sk тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_ecdsa_sk-cert type -1
debug1: файл идентификации /home/ellis77/.ssh/id_ed25519 тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_ed25519-cert type -1
debug1: файл идентификации /home/ellis77/.ssh/id_ed25519_sk тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_ed25519_sk-cert тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_xmss тип -1
debug1: файл идентификации /home/ellis77/.ssh/id_xmss-cert type -1
debug1: строка локальной версии SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
debug1: удаленный протокол версии 2.0, удаленная версия программного обеспечения OpenSSH_8.2p1 Ubuntu-4ubuntu0.2
debug1: соответствие: OpenSSH_8.2p1 Ubuntu-4ubuntu0.2 pat OpenSSH* compat 0x04000000
debug2: параметр fd 3 O_NONBLOCK
debug1: Аутентификация на 169.254.132.152:22 как «root»
debug3: hostkeys_foreach: чтение файла "/home/ellis77/.ssh/known_hosts"
debug3: record_hostkey: найден тип ключа ECDSA в файле /home/ellis77/.ssh/known_hosts:1
debug3: load_hostkeys: загружен 1 ключ из 169.254.132.152
debug3: order_hostkeyalgs: предпочитать hostkeyalgs: [email protected], [email protected], [email protected], ecdsa -sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug3: отправить пакет: введите 20
debug1: SSH2_MSG_KEXINIT отправлен
debug3: получить пакет: введите 20
debug1: SSH2_MSG_KEXINIT получен
debug2: предложение KEXINIT локального клиента
debug2: Алгоритмы KEX: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16 -sha512, диффи-хеллман-группа18-ша512, диффи-хеллман-группа14-ша256, доб-информация-с
debug2: алгоритмы ключа хоста: [email protected],[email protected],[email protected],ecdsa- sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, [email protected], [email protected], sk-ssh-ed25519- [email protected],[email protected],[email protected],[email protected],sk- [email protected],ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: шифры ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: шифры сток: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: главные администраторы MAC: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: Сток MAC: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: сжатие Технический директор: нет, [email protected], zlib
debug2: сжатие stoc: нет, [email protected], zlib
debug2: языки 
debug2: языки сток: 
отладка2: first_kex_follows 0 
отладка2: зарезервировано 0 
debug2: одноранговый сервер, предложение KEXINIT
debug2: Алгоритмы KEX: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16 -sha512,диффи-хеллман-группа18-ша512,диффи-хеллман-группа14-ша256
debug2: алгоритмы ключа хоста: rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519
debug2: шифры ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: шифры сток: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: главные администраторы MAC: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: Сток MAC: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: сжатие Технический директор: нет, [email protected]
debug2: сжатие исходный код: нет, [email protected]
debug2: языки 
debug2: языки сток: 
отладка2: first_kex_follows 0 
отладка2: зарезервировано 0 
debug1: kex: алгоритм: curve25519-sha256
debug1: kex: алгоритм ключа хоста: ecdsa-sha2-nistp256
debug1: kex: server->client шифр: [email protected] MAC: <неявное> сжатие: нет
debug1: kex: client->server шифр: [email protected] MAC: <неявное> сжатие: нет
debug3: отправить пакет: введите 30
debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY
debug3: получить пакет: введите 31
debug1: ключ хоста сервера: ecdsa-sha2-nistp256 SHA256:DJTgdLuz5rpLWLc/y2M7YJMqKu8g77Orjn3CyoRreoU
debug3: hostkeys_foreach: чтение файла "/home/ellis77/.ssh/known_hosts"
debug3: record_hostkey: найден тип ключа ECDSA в файле /home/ellis77/.ssh/known_hosts:1
debug3: load_hostkeys: загружен 1 ключ из 169.254.132.152
debug1: Хост «169.254.132.152» известен и соответствует ключу хоста ECDSA.
debug1: найден ключ в /home/ellis77/.ssh/known_hosts:1
debug3: отправить пакет: тип 21
debug2: set_newkeys: режим 1
debug1: сменить ключ после 134217728 блоков
debug1: SSH2_MSG_NEWKEYS отправлено
debug1: ожидается SSH2_MSG_NEWKEYS
debug3: получить пакет: тип 21
debug1: SSH2_MSG_NEWKEYS получен
debug2: set_newkeys: режим 0
debug1: повторный ввод после 134217728 блоков
debug1: попытается использовать ключ: /home/ellis77/.ssh/id_rsa RSA SHA256:rk0afdhz18RlnxGQ0ejIyPKXNUnLvHDEV3BTu9u1kLY агент
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_dsa 
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_ecdsa 
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_ecdsa_sk 
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_ed25519 
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_ed25519_sk 
debug1: попытается ввести ключ: /home/ellis77/.ssh/id_xmss 
debug2: pubkey_prepare: готово
debug3: отправить пакет: тип 5
debug3: получить пакет: тип 7
debug1: SSH2_MSG_EXT_INFO получен
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,[email protected],ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256 ,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected]>
debug3: получить пакет: тип 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT получен
debug3: отправить пакет: введите 50
debug3: получить пакет: введите 51
debug1: Аутентификации, которые могут продолжаться: открытый ключ, пароль
debug3: начать сначала, передать другой список открытых ключей, пароль
debug3: предпочтительный gssapi-с-микрофоном, общедоступным ключом, интерактивной клавиатурой, паролем
debug3: открытый ключ authmethod_lookup
debug3: остается предпочтительным: интерактивная клавиатура, пароль
debug3: открытый ключ authmethod_is_enabled
debug1: следующий метод аутентификации: открытый ключ
debug1: Предлагая открытый ключ: /home/ellis77/.ssh/id_rsa RSA SHA256: rk0afdhz18RlnxGQ0ejIyPKXNUnLvHDEV3BTu9u1kLY агент
debug3: отправить пакет: введите 50
debug2: мы отправили пакет с открытым ключом, ждем ответа
debug3: получить пакет: введите 51
debug1: Аутентификации, которые могут продолжаться: открытый ключ, пароль
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_dsa
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_dsa: нет такого файла или каталога
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_ecdsa
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_ecdsa: нет такого файла или каталога
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_ecdsa_sk
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_ecdsa_sk: нет такого файла или каталога
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_ed25519
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_ed25519: нет такого файла или каталога
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_ed25519_sk
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_ed25519_sk: нет такого файла или каталога
debug1: Попытка закрытого ключа: /home/ellis77/.ssh/id_xmss
debug3: нет такого идентификатора: /home/ellis77/.ssh/id_xmss: нет такого файла или каталога
debug2: мы не отправляли пакет, отключить метод
debug3: пароль authmethod_lookup
debug3: остается предпочтительным: ,пароль
debug3: пароль authmethod_is_enabled
debug1: следующий метод аутентификации: пароль
пароль пользователя [email protected]: 

После ввода правильного пароля (который он не должен запрашивать):

пароль пользователя [email protected]: 
debug3: отправить пакет: введите 50
debug2: мы отправили пакет паролей, ждем ответа
debug3: получить пакет: введите 51
debug1: Аутентификации, которые могут продолжаться: открытый ключ, пароль
Разрешение отклонено, попробуйте еще раз.
пароль пользователя [email protected]: 

Вот часть файла sshd_config с хоста. Обратите внимание, что аутентификация по паролю в настоящее время включена, но я отключил ее и перезапустил службу ssh, и она все еще запрашивала ее.

# Это общесистемный файл конфигурации сервера sshd. Видеть
# sshd_config(5) для получения дополнительной информации.

# Этот sshd был скомпилирован с PATH=/usr/local/sbin:/usr/local/bin:/usr/bin


# Логирование
АУТЕНТИФИКАЦИЯ SyslogFacility
ПОДРОБНО

# Аутентификация:

#LoginGraceTime 2 м
Разрешить RootLogin да
#Строгиережимы да

#AuthorizedPrincipalsFile нет

#AuthorizedKeysCommand нет
#AuthorizedKeysCommandUser никто

# Для этого вам также понадобятся ключи хоста в /etc/ssh/ssh_known_hosts
#HostbasedAuthentication нет
# Измените на yes, если вы не доверяете ~/.ssh/known_hosts для
# Аутентификация на основе хоста
#IgnoreUserKnownHosts нет
# Не читать пользовательские файлы ~/.rhosts и ~/.shosts
#ИгнорироватьRhosts да

# Чтобы отключить туннелируемые пароли в открытом виде, измените здесь на no!
Аутентификация по паролю да
#PermitEmptyPasswords нет

И, наконец, разрешение обоих каталогов ssh: Клиент:

drwxrwxr-x 2 ellis77 ellis77 4096 17 июн 10:08 .
drwxr-xr-x 27 ellis77 ellis77 4096 17 июня 09:58 ..
-rw-r--r-- 1 ellis77 ellis77 0 17 июн 10:07 конфиг
-rw------- 1 ellis77 ellis77 2610 17 июня 09:59 id_rsa
-rw------- 1 ellis77 ellis77 575 17 июня 09:59 id_rsa.pub
-rw-r--r-- 1 ellis77 ellis77 222 17 июня 10:08 known_hosts

Хозяин:

drwxr-xr-x 2 root root 4096 14 сентября 2020 г. .
drwxr-xr-x 38 root root 4096 15 июня 13:01 ..
-rw-r--r-- 1 root root 525809 31 августа 2020 г. модули
-rw-r--r-- 1 root root 1484 15 сентября 2020 г. ssh_config
-rw------- 1 root root 1381 14 сентября 2020 г. ssh_host_dsa_key
-rw-r--r-- 1 root root 600 14 сентября 2020 г. ssh_host_dsa_key.pub
-rw------- 1 root root 505 14 сентября 2020 г. ssh_host_ecdsa_key
-rw-r--r-- 1 root root 172 14 сентября 2020 г. ssh_host_ecdsa_key.pub
-rw------- 1 root root 399 14 сентября 2020 г. ssh_host_ed25519_key
-rw-r--r-- 1 root root 92 14 сентября 2020 г. ssh_host_ed25519_key.pub
-rw------- 1 root root 2590 14 сентября 2020 г. ssh_host_rsa_key
-rw-r--r-- 1 root root 564 14 сентября 2020 г. ssh_host_rsa_key.pub
-rw-r--r-- 1 корень корень 3126

Заранее спасибо. Я буду рад предоставить все необходимое.

Наконец, чтобы подтвердить IP-адрес хоста:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        инет 169.254.132.152 сетевая маска 255.255.0.0 широковещательная рассылка 169.254.255.255
        inet6 fe80::20a:35ff:fe00:122 prefixlen 64 scopeid 0x20<ссылка>
        эфир 00:0a:35:00:01:22 txqueuelen 1000 (Ethernet)
        Пакеты RX 1 байт 46 (46,0 Б)
        Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
        Пакеты TX 381 байт 16730 (16,3 КиБ)
        Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
        прерывание устройства 27 по основанию 0xb000  

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        инет 127.0.0.1 сетевая маска 255.0.0.0
        inet6 ::1 prefixlen 128 scopeid 0x10<хост>
        loop txqueuelen 1 (локальная петля)
        RX-пакеты 212 байт 18477 (18,0 КиБ)

Редактировать: я просто вошел в SSH со своего ноутбука (без ключей, настроенных на моем ноутбуке), и он принял пароль. Так что проблема, кажется, с моей рабочей машиной.

флаг hr
Я запутался - здесь, кажется, 2 вопроса, первый о проверке ключа хоста, а второй - об аутентификации с открытым ключом. О какой части вы спрашиваете?
Caden Ellis avatar
флаг ru
Ну, оба, я думаю. Пароль не сработает, но он все равно не должен спрашивать пароль с ключами. На данный момент, если я могу войти с паролем, мне все равно, что открытые ключи не работают.
флаг hr
Итак, сообщение о проверке ключа хоста должно просто исчезнуть, если вы его примете. Что касается части проверки RSA, проверьте наличие копии открытого ключа ellis77 (открытый ключ, соответствующий `/home/ellis77/.ssh/id_rsa`) в файле **root** `authorized_keys` на плате (обычно находится в `/root/.ssh/authorized_keys`). Ваш последовательный сеанс на плате зарегистрирован как `root` или как какой-то другой пользователь?
Caden Ellis avatar
флаг ru
@steeldriver мой последовательный сеанс с root. Ключи в указанных местах совпадают. Я также отредактировал сообщение, чтобы сказать, что я могу использовать ssh со своим ноутбуком, и он отлично принимает пароль. Только не другая машина.
флаг hr
Вы проверили auth.log/журнал на форуме на наличие соответствующих сообщений? Например, `journalctl -xe -u ssh.service` или `grep sshd /var/log/auth.log`?
Рейтинг:1
флаг ru

Так что это было очень глупо, но тонко. После того, как я поделился Интернетом с платой и запустил dhcpcd, я установил IP-адрес соединения USB Ethernet обратно в ручной режим и установил адрес 169.254.132.152... который был то же, что доска Я пытался подключиться по SSH. Ошибка новичка. Это должен быть другой адрес, который будет таким же после маскирования сетевой маской... например, 169.254.132.150. Тогда мы в той же маске, но не занимаем тот же адрес. Это объясняет, почему я мог пинговать и почему он не принимал мой «пароль», потому что я подключался по ssh к своему соединению... а не к моей плате.

Совет: когда вы меняете IP-адрес соединения, обязательно отсоедините USB-накопитель и снова подключите его, чтобы он обновился.

sudodus avatar
флаг jp
Спасибо, что поделились своим решением.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.