Проблемы с подключением SSH при помощи ключей
Пытаетесь подключиться к удаленному серверу по SSH с помощью ключей, а не паролей, но при каждой попытке подключения получаю следующее сообщение:
Почему так происходит и как решить возникшую проблему? Об этом я расскажу в своей сегодняшней статье.
Очень часто пользователи заодно с обычными обновлениями своей системы, обновляют и OpenSSH. В OpenSSH 7.0 изменился способ работы с некоторыми устаревающими и более слабыми криптографическими протоколами. Они всё еще поддерживаются OpenSSH, но по умолчанию отключены. В Вашем случае Вы пытаетесь подключиться к серверу, который поддерживает только алгоритм ssh-dss (DSA) с открытым ключом, а его разработчики OpenSSH считают слабым.
Решение состоит в том, чтобы снова включить алгоритм ssh-dss и, поскольку алгоритм слабый, делать это только для таких сайтов, которым это абсолютно необходимо. Если у Вас уже есть запись хоста для этого сайта в файлах /eto/ssh/ssh_oonfig или ~/.ssh/config, припишите к ней следующую директиву:
HostkeyAlgorithms +ssh-dssЕсли ни в одном из этих файлов записи хоста нет, добавьте ее следующим образом:
Host 82.917.814.129
HostkeyAlgorithms +ssh-dssЕсли для подключения обычно используется имя хоста, а не IP-адрес, это имя следует поместить в строку Host. Если в файле есть раздел, начинающийся с Host *, надо поместить свою запись выше него. Это связано с тем, что SSH использует первую подвернувшуюся подходящую запись, и если раздел Host * встретится раньше Вашего, то Ваши изменения никакой роли не сыграют. Если это одноразовое подключение и Вы не хотите добавлять хост к своему конфигурационному файлу, можно также включить ключевой алгоритм с командной строки для од но го вызова SSH:
ssh -oHostKeyAlgorithms=+ssh-dss user@hostname+ перед именем алгоритма означает, что он добавляется к списку доступных алгоритмов. (Если плюс не указать, то весь список заменится на указанный Вами алгоритм.) Это очень важно, потому что когда на сайте окажется доступным более надежный метод, OpenSSH автоматически применит его без какого-либо участия с Вашей стороны. Не указав +, Вы будете прикованы к более слабому методу навсегда. Существуют похожие ограничения на алгоритмы обмена ключами, которые обрабатываются аналогичным образом при посредства параметра KexAlgorithms.
Терминалы и суперпользователи

Мы часто предлагаем в качестве решения проблемы ввести те или иные команды в терминале. Хотя обычно то же самое можно сделать с помощью графических утилит дистрибутива, такие решения будут слишком конкретными (будут зависеть от дистрибутива). Команды в терминале более гибкие и — самое главное — ими можно пользоваться во всех дистрибутивах. Команды настройки системы часто нужно выполнять от имени суперпользователя, называемого также root. Существует два основных способа это делать, в зависимости от используемого дистрибутива. Во многих дистрибутивах, особенно в Ubuntu и его производных, перед командой можно написать sudo — при этом будет запрошен пароль пользователя, и ему будут предоставлены привилегии root только на время выполнения команды. В других дистрибутивах применяется команда su, для использования которой требуется ввести пароль root и которая предоставляет полный доступ root до того момента, пока вы не наберете logout. Если в вашем дистрибутиве используется su, запустите ее один раз и выполняйте любые заданные команды без предшествующей sudo.