среда, 15 сентября 2010 г.

Настройка OpenSSH с авторизацией по паре ключей

Под обычным пользователем:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
Мы сгенерируем нашу пару ключей, публичный и секретный ключи.


Публичный ключ размещается на сервере, а вы входите в систему с вашим секретным ключом. Когда попросят, введите вашу парольную фразу (она будет необходима для будующего входа в систему, так что помните ее!):
$ ssh-keygen -t rsa -C "A comment... usually an email is enough here..."
Теперь мы скопируем публичный ключ (который мы уже сгенерировали только что выше) на наш (удаленный) сервер.(Обратите внимание на двоеточие в конце строки! Это важно.)
$ scp -p id_rsa.pub remoteuser@remotehost:
Удаленный пользователь не должен быть root!
Теперь мы зайдем в систему с помощью SSH и скопируем публичный ключ в правильное место:
$ ssh remoteuser@remotehost
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ mv id_rsa.pub ~/.ssh
$ logout
Мы должны удалить публичный ключ на рабочей станции, так как иначе SSH-клиент не разрешает нам войти на сервер. Итак, введите эту команду:
$ rm id_rsa.pub
И затем пробуем войти опять:
$ ssh remoteuser@remotehost
Если вы сделали все точно, как было определено выше, то у вас спросят парольную фразу. Введите ее, после чего вы войдете и получите совершенно безопасное SSH-окружение!

Выключение аутентификации по паролю

Измените строки в /etc/ssh/sshd_config:
PermitRootLogin yes
PasswordAuthentication yes
На эти:
PermitRootLogin no
PasswordAuthentication no
Теперь сохраните файл и перезапустите SSH-сервер:
# /etc/init.d/ssh restart

Доступ только определённым пользователям

Добавьте эту строку в файл sshd_config:
AllowUsers username username username
где username - имена пользователей, разделённые пробелом, которым разрешён вход по SSH.
Также возможна конструкция
AllowGroups group group
где group - группы пользователей, которым разрешён вход по SSH.

Комментариев нет:

Отправить комментарий