Вопрос или проблема
С Ubuntu 15.10 и ранее у меня была запись хоста с “Протокол 1” в моем файле .ssh/config.
Ubuntu 16.04 больше не поддерживает SSH1 по умолчанию.
corben@ubuntu1604:~$ ssh -1 host
ssh1 не поддерживается
При использовании клиента ssh с любой записью хоста, имеющей строку “Протокол 1” в .ssh/config, он выдаёт сообщение:
corben@ubuntu1604:~$ ssh host
.ssh/config строка <nr>: Неверная спецификация протокола '1'.
Чтобы подключиться к моему хосту, используя ssh1, я могу установить пакет openssh-client-ssh1 и вызвать ssh1 вместо ssh. Но клиент ssh1 не использует запись хоста, настроенную в .ssh/config, когда строка “Протокол 1” отсутствует. Нет справочной страницы для ssh1, и “man ssh” всё ещё указывает опцию -1 для версии протокола 1. Я хочу использовать запись хоста, так как у меня настроены перенаправление портов и ключи ssh, которые я не хочу вводить каждый раз в командной строке.
Как использовать ssh и ssh1 в сосуществовании и .ssh/config?
Хост является встроенным устройством, которое все еще находится в эксплуатации, для которого не будет выпущено обновлений прошивки. Поскольку оно используется в локальной сети, аспект безопасности при использовании версии ssh 1 не является проблемой.
Протокол SSH1 ушел навсегда, и пора это признать. Его удалят из мануальных страниц и документации очень скоро, чтобы не путать пользователей. Ваша цель довольно неясна.
ssh1
все еще должен читать ~/.ssh/config
, если только разработчики Ubuntu не сломали что-то. Можете вы выложить подробный лог (ssh1 -vvv host1
) вашего подключения к вашему хосту ssh1? Изменяет ли использование ssh1 -1 host1
что-то?
Эту проблему можно решить и с клиентской стороны, установив клиент sshv1 (доступен в Ubuntu). Не рекомендуется на подключенной, живой сети, но я сделал это в тестовой сети, так как “сервер” в моем случае – это очень старое оборудование. Пакет – openssh-client-ssh1.
Ответ или решение
Для пользователей, работающих с Ubuntu 16.04 и старым оборудованием, которое поддерживает только SSH версии 1, задача совместимости с .ssh/config может представлять собой определенные сложности. В приведенных ниже рекомендациях мы будем рассматривать, как использовать SSH 1 и 2 в одном окружении, сохраняя конфигурацию в .ssh/config.
Использование SSH 1 и 2: Основные шаги
-
Проверка наличия клиента SSH 1
Ubuntu 16.04 по умолчанию не поддерживает SSH 1, но вы можете установить пакет, который включает в себя клиент SSH 1. Для этого выполните следующую команду:sudo apt-get install openssh-client-ssh1
После установки этого пакета вы сможете использовать команду
ssh1
для подключения к устройствам, которые требуют SSH 1. -
Настройка файла конфигурации .ssh/config
Файл .ssh/config служит для хранения настроек подключений SSH. Однако, как вы уже заметили, при использовании SSH 1 сssh1
, опции, задаваемые в .ssh/config, не работают автоматически. Вам нужно будет дополнительно указать параметры для SSH 1.Пример конфигурации в
.ssh/config
:Host old_device HostName <IP_адрес_или_имя_хоста> User <ваше_имя_пользователя> Port <номер_порта> IdentityFile ~/.ssh/id_rsa_old Protocol 1
Важно: Так как
ssh1
не распознает опциюProtocol 1
в .ssh/config, вам придется указывать в командной строке, что хотите использовать SSH 1. -
Использование командной строки для подключения
Для подключения к вашему старому устройству используйте:ssh1 old_device
Обратите внимание, что в некоторых случаях может понадобиться указать дополнительные параметры, например, порт или ключ:
ssh1 -p <номер_порта> -i ~/.ssh/id_rsa_old old_device
Примечания по безопасности
Рекомендуется использовать SSH 1 только в изолированной среде, так как этот протокол имеет серьезные уязвимости. Если ваше оборудование находится в локальной сети и не подвержено внешним угрозам, это может быть приемлемо. Однако всегда следует рассмотреть возможность обновления оборудования, чтобы использовать современные протоколы безопасности.
Использование SSH 2
Для подключения к машине, поддерживающей SSH 2, вы можете просто использовать привычную команду ssh
, как обычно:
ssh user@ssh2_host
Заключение
Использование SSH версии 1 и 2 в Ubuntu 16.04 требует некоторой адаптации и настройки, но возможно. Установка пакета openssh-client-ssh1
и индивидуальные команды для подключения помогут вам управлять соединениями, сохраняя существующие конфигурации и настройки. Важно помнить о безопасности и избегать использования устаревших протоколов, там, где это возможно.Посмотрите лог подключения с использованием ключа -vvv
, чтобы отследить возникающие проблемы.