Перейти к основному содержимому

ssh - только по ключам.

· 2 мин. чтения
Stavis Vega

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

Файл настроек

sudo vim /etc/ssh/sshd_config

Поиском в vim - комбирация /поисковая_фраза Переключение на следующую найденую комбирацюи n, предыдущую N

Отключение аутентификации по паролю на сервере

Нужный параметр:

PasswordAuthentication yes
  • Находим строчку PasswordAuthentication
  • Расскоментировать, если #
  • Прописываем no

Меняем стандартный порт

Не думаю, что это как то спасает от снифферов, но часто требуют. Так что. Нужный параметр:

Port 22
  • Находим строчку Port
  • Прописываем потр по которому хотим подключаться например 1234
  • теперь для подключения по ssh в строку подключения сделует добавить ключ -p 1234.

Копируем наши ключи на сервер

ssh-copy-id username@remote_host

Хардкор вариант если ssh-copy-id на сервере нет.

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Ну или совсем треш

Скопировать у себя на хосте открытый ключ:

cat ~/.ssh/id_rsa.pub

На OS X, Мак осях используем pbcopy; pbpaste

pbcopy < .ssh/id_rsa.pub

Ну а на сервере вставляешь прямо в файл authorized_keys.

создаем директорию, есди ее еще нет:

mkdir -p ~/.ssh

Добавляем наш открытый ключ в список авторизованных:

echo public_key_string >> ~/.ssh/authorized_keys

Перезапуск сервиса

На Ubuntu / Debian:

sudo service ssh restart

CentOS/Fedora/Manjaro этот демон носит имя sshd:

sudo service sshd restart

Предупреждение!

Иногда при попытке зайти на сервер по ssh может вылететь красивое предупреждение начинающееся с:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Это сообщение означает одну из некоторых причин:

  • Сервер был переустановлен
  • Изменился IP-адрес сервера
  • Сервер сменил SSH-ключи
  • MITM-атака (маловероятно, но возможно)

Решается это удалением старого ключа из списка известных хостов. Команда простая:

ssh-keygen -R имя_сервера

или

ssh-keygen -R IP_адрес_сервера

После удаления старой записи просто подключитесь снова - новый ключ будет добавлен автоматически.