SSH (Secure Shell) — это криптографический сетевой протокол, который позволяет безопасно управлять сервером и передавать данные по незащищенным сетям. Ниже приведена пошаговая инструкция по подключению.

1. Что потребуется для подключения

  • IP-адрес или доменное имя вашего сервера (например, 192.168.1.100 или example.com).
  • Имя пользователя (обычно root или имя созданного вами пользователя, например, ubuntu, debian, user).
  • Пароль или приватный SSH-ключ для аутентификации.
  • SSH-клиент:
    • В Linux и macOS клиент OpenSSH встроен в терминал по умолчанию.
    • В Windows 10/11 встроен клиент OpenSSH (доступен в командной строке cmd, PowerShell или Терминале Windows).
    • Альтернативы для Windows: PuTTY, MobaXterm, Windows Terminal.

2. Базовое подключение по паролю

Откройте терминал (или командную строку) и введите следующую команду, заменив username и server_ip на ваши данные:

ssh username@server_ip

Пример: ssh Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.

Первое подключение (Проверка отпечатка хоста)

При первом подключении к серверу вы увидите сообщение о том, что подлинность хоста не может быть установлена. Это нормальное поведение:

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Введите yes и нажмите Enter. Сервер будет добавлен в файл ~/.ssh/known_hosts на вашем компьютере, и в будущем это предупреждение не появится (если ключ сервера не изменится).

После этого система запросит пароль. Внимание: при вводе пароля символы на экране не отображаются (нет звездочек или точек). Это мера безопасности. Просто введите пароль и нажмите Enter.

3. Подключение через нестандартный порт

По умолчанию SSH использует порт 22. Если администратор сервера изменил порт в целях безопасности (например, на 2222), используйте флаг -p:

ssh -p 2222 username@server_ip

4. Подключение с использованием SSH-ключей (Рекомендуемый способ)

Аутентификация по ключам надежнее и удобнее, чем по паролю. Она состоит из трех этапов.

Шаг 4.1. Генерация ключей (на вашем локальном компьютере)

Если у вас еще нет пары ключей, создайте ее:

ssh-keygen -t ed25519 -C "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript."

Примечание: Если ваша система старая и не поддерживает ed25519, используйте ssh-keygen -t rsa -b 4096.

Вам будет предложено указать путь для сохранения ключа (оставьте путь по умолчанию, нажав Enter) и ввести кодовую фразу (passphrase) для дополнительной защиты ключа (можно оставить пустым, просто нажав Enter).

Шаг 4.2. Копирование публичного ключа на сервер

Используйте утилиту ssh-copy-id (доступна в Linux, macOS и современных версиях Windows). Она автоматически добавит ваш публичный ключ в файл ~/.ssh/authorized_keys на сервере:

ssh-copy-id username@server_ip

Система попросит ввести пароль от сервера один последний раз. После успешного копирования вы увидите сообщение: Number of key(s) added: 1.

Шаг 4.3. Подключение по ключу

Теперь вы можете подключаться без ввода пароля:

ssh username@server_ip

Шаг 4.4. Подключение с указанием конкретного приватного ключа

Если вы сохранили ключ под нестандартным именем или в другом месте, укажите путь к нему с помощью флага -i:

ssh -i /путь/к/вашему/приватному_ключу username@server_ip

5. Как завершить SSH-сессию

Чтобы корректно отключиться от сервера и вернуться в локальный терминал, используйте один из двух способов:

  • Введите команду exit и нажмите Enter.
  • Нажмите комбинацию клавиш Ctrl + D.

6. Решение частых проблем

Ошибка: "Connection refused" (Соединение отклонено)

  • Убедитесь, что вы правильно указали IP-адрес.
  • Проверьте, не используется ли нестандартный порт (добавьте флаг -p).
  • На сервере может не быть запущен SSH-демон (sshd), или он блокируется фаерволом (iptables/ufw).

Ошибка: "Permission denied (publickey,password)"

  • Вы ввели неверный пароль или имя пользователя.
  • Если вы используете ключи: убедитесь, что вы указываете правильный путь к приватному ключу через -i.
  • Проверьте права на файл приватного ключа на вашем компьютере. Они должны быть строгими: chmod 600 ~/.ssh/id_ed25519.
  • На сервере вход по паролям или ключам может быть отключен в файле /etc/ssh/sshd_config.

Ошибка: "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"

Это серьезное предупреждение. Оно означает, что отпечаток ключа сервера изменился. Это может произойти, если:

  • Сервер был переустановлен или заменен.
  • Изменился IP-адрес, и теперь он принадлежит другому серверу.
  • Происходит атака "человек посередине" (Man-in-the-Middle).

Если вы уверены, что причина безопасна (например, вы только что переустановили ОС на сервере), удалите старую запись из файла known_hosts с помощью команды:

ssh-keygen -R server_ip

После этого попробуйте подключиться снова.