SSH без пароля или аутентификация с использованием шифрованных ключей

SSH без пароля или аутентификация с использованием шифрованных ключей

У вас имеется выделенный сервер или ВПСка и вы используете ssh для подключения к нему?  Придумали крутой пароль  для своей же безопасность более 10 символов? Каждый день заходите на него много раз? И надоело вводить этот, то тогда я расскажу в своей статье «SSH без пароля или аутентификация с использованием шифрованных ключей» как это можно легко сделать.

Ключики для SSH. Методы Identity и Pubkey.

Кто  использует методы идентификации,  такие как  Identity и Pubkey, то в них нет нужды в  использовании статических паролей. Так как это очень надоедает вводить очень длинные пароли для своей же безопасности, которые довольно легко перехватуются  Keylogger -ом, на худой конец их можно просто увидеть у кого то, а так мы будем хранить на диске 2 ключа, которые будут использованы как проверка подлиности.

Особенности этого использования:
Любой человек который захочет войти на ваш сервер с использованием учетки провалиться  т.к ему нужно будет иметь приватный ключ и так же кодовое слово для расшифрования.
Системный администратор своего  сервера легко может удалить все пароли для своих учеток, чтобы исключить его дискредитацию.
Вы легко сможете заюзать программу ssh-agent и она будет предоставлять аутентификационные данные сама для вас.
Можно так же установить некоторые ограничения, например можно запретить перенаправление портов для использовании некоторых утилит и т.д.

Установить ssh-сервера в Debian/Ubuntu/Linux Mint

Чтобы это сделать нужно выполнить команду:

# sudo apt-get install openssh-server

Чтобы запустить сервер нужно выполнить:

# sudo /etc/init.d/ssh start

Чтобы остановить сервер нужно выполнить:

# sudo /etc/init.d/ssh stop

Чтобы перезапустить сервер нужно выполнить:

# sudo /etc/init.d/ssh restart

Создание Identity и Pubkey или создание открытых и закрытых SSH ключей.

Чтобы сгенерировать 2 ключа, нужно использовать утилиту ssh-keygen:

# ssh-keygen -t rsa -b 1024 -f $HOME/.ssh/id_rsa

Опция «-t rsa» я указал тип для создаваемого ключа, но так же можно сгенерировать и с другими опциями, например— rsa1, rsa и dsa.

Паблик (открытый )ключ нужно необходимо скопировать на сервер $HOME/.ssh/authorized_keys.

Настройка SSH-сервера
Все что я делал выше это я делал на локальном компьютере, но  теперь нужно показать для удаленного нашего сервера или ВПСки, то есть  куда я будем подключаться.
Ключи уже сгенерированы и имеются в системе,  что нужно следующем эпате, так это разрешить данную опцию для аутентификации на самом SSH-сервере, но для самого начала  я определю какой нам тип будет нужен  — Pubkey или может Identity, для этого  я установлю следующие настройки в самом конфиге ssh:

# vim /etc/ssh/sshd_config
[...]
RSAAuthentication yes
[...]
PubkeyAuthentication yes
[...]
AuthorizedKeysFile .ssh/authorized_keys
[...]

Выложу стандартный sshd_config в качестве примера:
Для чтения, перейдите по ссылке.
Чтобы скачать используйте команду:

# wget http://linux-notes.org/wp-content/uploads/files/ssh_open_ssh/sshd_config

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

докуметация_на_русском_языке_для_настройки_ssh-server

Копирование файла с ключом на удалённый наш сервер.

1. можно скопировать:

# ssh-copy-id -i ~/.ssh/id_rsa.pub your_user@remote_or_server_host

2. Делаем все ручками.

# cat ~/.ssh/id_rsa.pub | ssh -l your_user@remote_server_host ‘mkdir -p .ssh; touch .ssh/authorized_keys; cat >> .ssh/authorized_keys; chmod 700 ~/.ssh; chmod 700 ~/.ssh/authorized_keys’

Так же можно выполнить:

# scp ~/.ssh/id_rsa.pub youruser@remote.server.host
# ssh your_user@remote_server_host
# [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 700 ~/.ssh)
# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 700 ~/.ssh/authorized_keys

После всего этого можно и сделать проверку:

# ssh your_user@remote_server_host

Должно все работать, только есть вы не поставили пароль на сам ключ. 😉

Как заменить все SSH ключи на сервере?

В консоле вводим команду для удалении всех имеющихся ключей, для этого выполняем:

# rm /etc/ssh/ssh_host_*

Затем нужно сгенерировать новые ключики, а то сервер будет ругаться, типа этого:
Could not load host key: /etc/ssh/ssh_host_rsa_key

По этому я выполню команду и решу все это так:

# dpkg-reconfigure openssh-server

Утилита созаст нам пару ключиков что и решит нашу собственно задачу.

После конечно же ребутимся:

# reboot

Тема «SSH без пароля или аутентификация с использованием шифрованных ключей» завершена. Если есть вопросы, то пишите мне.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.