Як встановити і налаштувати сервер SSH на Debian Linux?

Установка і тестування SSH Server

Ви повинні бути коренем, щоб зробити наступне…

su

  1. Установка SSH Server

    apt install openssh-server
     

  2. Перевірте, якщо серверний процес існує. Це вказує на те, Установка пройшла добре.

    ps -A | grep sshd

    вихід (або аналогічний): 1753 ? 00:00:00 sshd

     

  3. Встановіть SSH клієнт, щоб перевірити з'єднання SSH сервера

    apt install openssh-client

    Підключення до локального для перевірки з'єднання

    ssh localhost

    Крім того, увійдіть за IP-адресою інтерфейсу

    Отримати IP-адресу

    ip addr

    SSH за адресою внутрибрюшинно

    ssh {ipaddress here}
     

Захист SSH Server

Це гарна ідея, щоб захистити сервер SSH відкидаючи корінь для входу і настройки входу тільки відкритим ключем тобто. Увійти за допомогою паролів не допускається

Переконайтеся в тому, щоб виконати наступні команди в якості користувача, а не корінь

  1. Перейдіть в домашній каталог користувача

    cd
     

  2. Перевірте .ssh існує

    ls -a
     

  3. Якщо .ssh не існує, створити його

    mkdir .ssh
     

  4. Встановіть дозвіл папки в 700

    chmod 700 .ssh
     

  5. Створіть файл authorized_keys

    touch ./.ssh/authorized_keys
     

  6. Змінити дозвіл на файл authorized_keys в 600

    chmod 600 ./.ssh/authorized_keys
     

  7. Відкрийте файл authorized_keys

    nano ./.ssh/authorized_keys
     

  8. Вставте відкритий ключ в файл

    Ви можете отримати відкритий ключ від клієнта SSH. If the client is Windows 10 то це буде в %USERPROFILE%/.ssh/id_rsa.pub файл. If the client is Debian then the public key is ~/.ssh/id_rsa.pub.

    Якщо відкритий ключ не існує, генерувати його на клієнтській машині

    ssh-keygen -t rsa -C "email@domain.com"
     

  9. Зміна кореневого користувача

    su

  10. Налаштування сервера SSH, щоб приймати тільки відкриті ключі логінів і запобігання входу для кореня

    nano /etc/ssh/sshd_config

    Раськоментіруйте і / або відредагувати наступні рядки

    PermitRootLogin no
    StrictModes yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
    PasswordAuthentication no
     

  11. Перезапустіть службу Sshd

    service sshd restart
     

  12. Спробуйте увійти в систему як привілейований користувач з вашого SSH клієнта за допомогою пароля

    ssh root@{ssh server ip address}

    вихід: Permission denied (publickey).

     

  13. Спробуйте увійти в систему як ім'я користувача з вашого SSH клієнта за допомогою пароля

    ssh username@{ssh server ip address}

    вихід: Permission denied (publickey).

     

  14. Спробуйте увійти в систему як суперкористувач від вашого клієнта SSH за допомогою відкритого ключа

    ssh root@{ssh server ip address} -i .ssh/id_rsa

    вихід: Permission denied (publickey).

     

  15. Ввійти, як ім'я користувача з вашого SSH клієнта за допомогою відкритого ключа

    ssh username@{ssh server ip address} -i .ssh/id_rsa
     

Якщо ваш клієнт SSH має статичний IP-адресу, то ви можете розглянути тільки ваш IP-адреса може зайти на сервер SSH.