Debian Help

SSH

SSH (Secure Shell) - это безопасный протокол для удаленного доступа к системам. Он обеспечивает зашифрованное соединение, что делает его идеальным инструментом для разработчиков и системных администраторов.

Ключевые преимущества SSH:

  • Шифрование данных: Все передаваемые данные надежно зашифрованы

  • Аутентификация пользователей: Поддержка паролей и SSH-ключей

  • Удаленный доступ: Возможность управления серверами из любой точки

  • Перенаправление портов: Безопасный доступ к сервисам через туннели

Генерация SSH-ключей

Чтобы сгенерировать SSH-ключ, нужно выполнить следующие шаги:

  1. Открыть терминал и ввести команду ssh-keygen. По умолчанию создаётся пара 2048-битных RSA-ключей. Для дополнительной безопасности можно создать пару ключей 4096-битного RSA с помощью команды:

    ssh-keygen -b 4096
  2. Система запросит место для сохранения пары ключей. По умолчанию это ~/.ssh/id_rsa. Можно нажать Enter, чтобы принять расположение по умолчанию, или указать другой путь или имя ключа.

  3. Если ключ уже существует в системе, появится запрос о перезаписи старого ключа. Система больше не сможет аутентифицироваться с помощью старого ключа. Нужно нажать y для продолжения.

  4. Ввести и подтвердить кодовую фразу. Рекомендуется выбрать надёжную кодовую фразу, включающую заглавные и строчные буквы, цифры и символы.

  5. После двойного ввода кодовой фразы ssh-keygen сгенерирует два файла: один закрытый (id_rsa) и один общедоступный (id_rsa.pub).

Получить публичный ключ пользователя

Найти файл с открытым ключом. Для этого использовать команду:

cat ~/.ssh/id_rsa.pub

Подключение публичного ключа

  • С помощью команды ssh-copy-id. В консоли ввести команду:

    ssh-copy-id username@remote_host

    и активировать её. Заменить username@remote_host на адрес целевого компьютера. Утилита самостоятельно займётся поиском и копированием ключа.

  • Ручное копирование. Определить сведения о ключе на серверном ПК через:

    cat ~/.ssh/id_rsa.pub

    В консоли должна отобразиться строка ssh-rsa + ключ в виде набора символов== demo@test. Перейти к другому компьютеру, где создать новую директорию, введя:

    mkdir -p ~/.ssh

    В ней же добавить текстовый файл под названием authorized_keys. Вставить туда определённый ранее ключ через:

    echo + строка публичного ключа >> ~/.ssh/authorized_keys

Как закрыть доступ по паролю и запретить авторизацию для root в SSH

Запрещаем авторизацию для root, нужно отредактировать файл sshd_config:

  1. Открыть файл для редактирования:

    nano /etc/ssh/sshd_config
  2. Найти параметр PermitRootLogin и заменить его значение на no.

Запрещаем аутентификацию по паролю, нужно выполнить следующие шаги:

  1. Открыть тот же файл sshd_config.

  2. Найти строку PasswordAuthentication yes.

  3. Заменить значение «yes» на «no». Строка может быть закомментирована (перед ней стоит символ «#»), в этом случае её надо раскомментировать.

После внесения изменений необходимо перезапустить сервер. Для этого используют команды:

/etc/init.d/ssh restart
service ssh restart
systemctl restart sshd
Last modified: 25 марта 2025