Проблема с OpenSSH – “Protocol major versions differ: 2 vs. 1”

При попытке установить беспарольное соединение между 2-мя серверами на ubuntu (8.04 vs 9.*), выскочила такая ошибка:

Protocol major versions differ: 2 vs. 1
lost connection

и соединение, ясень пень, сразу же разрывается. Что бы все-таки законектиться можно добавить ключ “-1” на машине отправителе (отправитель – это система на 9й убунте с 5м openssh-ем на борту, получатель – система на 8й убунте с 4.7 openssh), другими словами, можно сделать так:
ssh -1 source_file user@remote:remote_file
но при этом мои rsa ключи, сгенерированные для других серверов, для этой пары не работали.
Начал гуглить и откапал решение. Оказывается, 1ая версия протокола ssh использует другие ключи, а именно rsa1.
Для их генерирования используем команду

ssh-keygen -t rsa1

Ключик получился немного непривычным на вид, но отличия еще в том, что создаются файлы с непривычными названиями:
identity и identity.pub.
По аналогии, точнее, по привычке, перенес identity.pub на сервер-приемник, добавил в конец /home/$user/.ssh/authorized_keys и … получилось!

Надеюсь, по заголовку поста кто-то найдет эту страницу и она ему поможет.

UPDATE:
что бы rsync использовал 1й протокол, все-таки оказалось нужным раскомментировать строку
Protocol 2,1
в /etc/ssh/ssh_config
теперь ssh клиент сам определяет, когда нужно использовать 1ую версию протокола, а когда вторую.

Короче, проехали – работает.

Leave a Comment