Ошибка 1: Забытый флаг -i
Симптом: Permission denied (publickey) или зависание при попытке подключиться.
Причина: Без -i SSH ищет ключ в нескольких стандартных местах. Если у вас нестандартное имя ключа или несколько ключей, SSH может выбрать не тот.
# Неправильно (может не найти нужный ключ):
ssh ec2-user@linux.itcareerhub.de
# Правильно (явно указать путь к ключу):
ssh -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de
Ошибка 2: Неверные права на ключи и папку ~/.ssh
Симптом: Ошибка Permissions 0644 for '~/.ssh/id_rsa' are too open или аналогичная.
Причина: SSH отказывается использовать ключ, если его могут прочитать другие пользователи. Это защита от утечки ключа.
# Проверить текущие права
ls -la ~/.ssh/
# Исправить права на приватный ключ (только владелец читает/пишет)
chmod 600 ~/.ssh/id_rsa
# Исправить права на папку (только владелец видит содержимое)
chmod 700 ~/.ssh
Правило: папка ~/.ssh — 700, приватный ключ — 600, публичный ключ — 644.
Ошибка 3: Путаница приватного и публичного ключей
Симптом: Студент отправляет преподавателю файл id_rsa вместо id_rsa.pub.
Последствие: Серьёзная проблема безопасности — теперь другой человек может войти на ваш сервер от вашего имени.
# НЕПРАВИЛЬНО — приватный ключ, никому не давать!
cat ~/.ssh/id_rsa
# ПРАВИЛЬНО — публичный ключ с расширением .pub
cat ~/.ssh/id_rsa.pub
Правило: публичный ключ всегда с расширением .pub. Если передаёте ключ — проверьте расширение перед копированием.
Ошибка 4: Пересоздание ключей без предупреждения
Симптом: После ssh-keygen SSH внезапно перестаёт работать на всех серверах.
Причина: Новая пара ключей перезаписывает старые. Старый публичный ключ на серверах больше не соответствует новому приватному.
# После пересоздания нужно:
# 1. Вывести новый публичный ключ
cat ~/.ssh/id_rsa.pub
# 2. Отдать его всем администраторам серверов
# 3. Дождаться, пока они добавят новый ключ в authorized_keys
Ошибка 5: Отсутствие флага -i в SCP
Симптом: scp не подключается, хотя ssh работает.
Причина: Те же правила, что у ssh — нужно явно указать ключ.
# Неправильно:
scp ec2-user@linux.itcareerhub.de:/opt/GROUP/NAME/file .
# Правильно:
scp -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de:/opt/GROUP/NAME/file .