Предположим Вы получили пару ключей для подключения на проекте (вот тут важно что не новые, а уже существующие) добавили к себе и при подключении получили ошибку: SSH Permission denied (publickey,password).
Есть несколько причин начиная от технических заканчивая прокладкой (увы но в этот раз прокладка подвела и это 3 пункт):
1. Проверка и устранение несоответствия ключей. (не применим если нет доступа к серверу)
Так как ключи ранее уже использовались, то сделаем простую проверку, необходимо убедиться что вы используете правильные закрытый и открытый ключ, сгенерируйте хэш обоих. Для каждого ключа на сервере и клиентской машине выполните следующую команду:
ssh-keygen -lf [/path/to/key]
Сравните отпечатки клиента и сервера. Если отпечатки совпадают в точности, то ключи SSH идентичны, что указывает на то, что ключ клиентской машины совпадает с соответствующим ключом сервера. Переходим к следующему решению, так как несовпадение ключей не является проблемой для данной ошибки.
2. Проверка и настройка разрешений ключей.
Настройка разрешений ключей.
Закрытый ключ должен храниться на клиентской машине, и только владелец должен иметь права на чтение и запись . Выполните следующие действия, чтобы установить правильные разрешения:
cd ~/.ssh/
- Установите разрешения на чтение и запись :
chmod 600 id_rsa
Заменяем id_rsa на имя файла вашего закрытого ключа.
Разрешения для файлов authorized_keys
Файл authorized_keys хранит открытый ключ, ранее авторизованный для аутентификации. Он находится в каталоге .ssh на сервере. Чтобы предотвратить несанкционированный доступ на запись, установите разрешения 600 (-rw-------
).
Выполняем следующие шаги:
cd ~/.ssh/
- Установите права доступа к файлу с помощью:
chmod 600 authorized_keys
Права доступа к каталогу .ssh
Установим разрешения для каталога .ssh , переходим в каталог на клиентской и серверной машинах. Ограничьте доступ только владельцу с помощью:
chmod 700 ~/.ssh
Резумируем требуемый/рекомендуемый список прав доступа для файлов:
каталог ~/.ssh: 0700 (drwx------)
файл ~/.ssh/authorized_keys: 0600 (-rw-------)
файл ~/.ssh/config: 0600 (-rw-------)
файл ~/.ssh/id_rsa (или другие закрытые ключи): 0600 (-rw-------)
3. Проверка и настройка параметров конфигурации сервера
Настройте ~/.ssh/config, чтобы настроить разные ключи для разных серверов, а так же обратите внимание что вы используете при подключении (какое вводите имя для сервера) такое же как и в файле? (а то может быть прописано имя, а пытаетесь войти по ip при этом при явном указании какой использовать ключ подключение благополучно устанавливается).
ssh user@server получаем ошибку SSH Permission denied (publickey,password)
ssh -i ~/.ssh/id_rsa_key user@server Подключение выполнено
nano ~/.ssh/config В данном случае переходим ~/.ssh/config и проверяем как прописано подключение для данного сервера (nano ~/.ssh/config)
и видим подобное:
Host name
HostName 192.168.0.1
User root
а подключаетесь так же как и я ssh root@192.168.0.1 поздравляю шарик ты .... (по сути тут ошибка что вместо ввода команды ssh user@host вводим команду ssh user@hostname) необходимо ввести команду ssh root@name