🐛 Типичные ошибки SSH/SCP

К оглавлению урока

⚡ Топ-3 ошибки

  1. Забытый флаг -i: ssh ec2-user@host → ищет ключ автоматически, но часто не находит. Всегда указывайте явно: ssh -i ~/.ssh/id_rsa ...
  2. Неверные права на ~/.ssh: Ошибка «Permissions 0644 for id_rsa are too open» — выполните chmod 600 ~/.ssh/id_rsa и chmod 700 ~/.ssh.
  3. Путаница приватного и публичного ключа: Передавайте только id_rsa.pub — тот, что с расширением .pub. Файл id_rsa — ваш личный, никуда не отправлять.

Ошибка 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 .