vazhnov (vazhnov) wrote,
vazhnov
vazhnov

Правила хорошего тона: SSH

  • Пользоваться ключами с passphrase. Т.е., нужно будет вводить её один раз, потом менеджер (ssh-agent) запомнит её до следующей перезагрузки.
  • Менять порт SSH-сервера на нестандартный.
  • Прописывать AllowUsers в настройках, чтобы нельзя было заходить под «случайно» заведённым пользователем.
  • Прописывать настройки в ~/.ssh/config

Теперь рассмотрим подробнее, для начинающих, на примере Debian/Ubuntu:

Часть первая, на сервере:


Если у нас Debian, то лучше сразу установить sudo:
su -c "apt-get install sudo"

и добавить себя в группу sudo:
su -c "adduser ваш_логин sudo"


Перед установкой, обновляем информацию о пакетах:
sudo apt-get update


Устанавливаем ssh-сервер, чтобы к нему можно было подключаться:
sudo apt-get install openssh-server


Выбираем редактор по-умолчанию (если не делали этого ранее):
sudo update-alternatives --config editor


Теперь нужно определиться с тем, какой у нас логин: даём команду
whoami

(если в результате видим root — значит, нужно искать свой логин каким-нибудь другим путём).

Редактируем файл настроек ssh-сервера:
sudo editor /etc/ssh/sshd_config


Добавляем строчки с настройками. Первым делом, меняем номер порта, который будет слушать SSH-сервер. Это нужно, чтобы многочисленные вирусы круглыми сутками не подбирали пароль:
Port 19


Теперь прописываем список логинов пользователей, которым можно заходить с помощью SSH (если нужно разрешить вход кому-то ещё — дописывайте логин через пробел):
AllowUsers ваш_логин


Просим ssh-сервер перечитать настройки:
sudo service ssh reload


Если эта команда ничего после себя не выдала — значит сервер мы более-менее настроили.

Часть вторая, на десктопе.


Следующие команды выполняем не на сервере, а на том компьютере, с которого будет получать доступ.

Убеждаемся, что мы не root:
whoami

Если видим «root», значит запускаем обычный терминал (Приложения → Стандартные → Терминал) и повторяем этот пункт.

Убеждаемся, что у нас ещё нет ssh-ключей:
ls -l ~/.ssh

В выводе не должно быть файлов «identity», «id_rsa», «id_dsa» или «id_ecdsa». Возможно, вы даже получите сообщение об ошибке. Всё нормально, у вас ещё нет ssh-ключей.

Создаём ssh-ключи:
ssh-keygen -C "ваш_комментарий"

В качестве комментария, принято использовать e-mail или лучше "e-mail имя_компьютера", на котором генерировали ключи.

В ответ на «Enter file in which to save the key» просто нажимаем [Enter],
А вот на «Enter passphrase» вводим свой самый лучший пароль, хороший и надёжный. Что-нибудь типа queafWodEis5.
На «Enter same passphrase again» повторяем пароль.

Всё, ключи готовы!
Теперь редактируем файл настроек ssh:
editor ~/.ssh/config

Вписываем в него:
Host ip-адрес-сервера
 Port 19
 User ваш_логин_на_сервере


Если имя пользователя на сервере и на вашем компьютере совпадают, то строчку с логином не пишем.

Теперь копируем публичную часть ключа на сервер:
ssh-copy-id ip-адрес-сервера

Вводим пароль от сервера (больше он нам для входа не понадобится).
Если видим «Now try logging into the machine…», значит всё в порядке, ключ скопирован на сервер в /home/ваш_логин/.ssh/authorized_keys

Ура! Теперь, когда вы будете пытаться войти на сервер с помощью ssh, в первую очередь будут использованы ssh-ключи, и если не получится, то обычный пароль.

Если компьютер, с которого вы будете заходить на сервер, имеет постоянный ip-адрес, то на сервере в файле /home/ваш_логин/.ssh/authorized_keys можно указать этот ip-адрес перед ключём, и тогда этот ключ будет действительным только с этого адреса:
from="192.168.0.17" ssh-rsa AAAA…


Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons Attribution-ShareAlike (Атрибуция — С сохранением условий) 3.0 Непортированная.
Tags: linux, Правила хорошего тона
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments