vazhnov: (Linux)
[personal profile] vazhnov
  • Пользоваться ключами с 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 ваш_логин


UPD 2020: Крайне рекомендую отключить вход на сервер по паролю указанием PasswordAuthentication no.

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


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

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



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

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

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

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

В выводе не должно быть файлов «identity», «id_rsa», «id_dsa», «id_ecdsa» или «id_ed25519». Возможно, вы даже получите сообщение об ошибке. Всё нормально, у вас ещё нет 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 Непортированная или более новой.

Date: 2011-12-29 07:07 pm (UTC)
From: [identity profile] kirill kazakov (from livejournal.com)
Нестандартный порт лучше выбирать вне диапазона системных портов (0..1023) и чтобы не совпадал с другими зарезервированными портами (например, 59xx для VNC). Большинство ботов обычно сканируют именно эти порты, тогда как до порта, скажем, 39329 вряд ли дойдёт дело.

Date: 2012-01-01 10:48 am (UTC)
From: (Anonymous)
Правило хорошего тона:

* Не заводить случайных юзеров (но AllowUser всё равно прописать)
* Забанить вход под рутом
* Юзать ключи и утилиту ssh-copyid вместо паролей.
* Отрубить X11Forwarding если не пользуемся
* Забиндить ListenAddress на реальный IP, а не на 0.0.0.0


September 2014

S M T W T F S
 123 456
78910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2025 10:28 am
Powered by Dreamwidth Studios