пятница, 28 марта 2008 г.

Как установить SSH с аутентификацией при помощи публичного ключа в Debian Etch

Пер. с англ., источник - здесь

Подготовительные замечания.

Это мини-HOWTO объясняет, как установить SSH-сервер в Debian Etch с аутентификацией при помощи публичного ключа (и опционально с отключением входа по паролю). SSH - прекрасный инструмент для удаленного управления компьютерами на базе Linux. Он надежен и безопасен.
Нет никакой гарантии, что все будет работать в вашем конкретном случае. Все эти настройки применимы для Debian и производных от него систем! На других системах могут иметь место незначительные отличия.

Установка SSH на сервер.

Во-первых, мы установим SSH на наш сервер. Мы можем сделать это с помощью этой команды: (Заметьте, что вы должны иметь привилегии root, чтобы сделать это!)

apt-get install ssh

Подготовка нашей клиентской системы.


Во-вторых, мы выполним некоторые подготовительные действия на нашей клиентской машине. Этот PC будет использоваться для подключению к серверу. Итак, SSH-сервер был уже установлен на различные машины. На вашей рабочей станции мы устанавливаем ssh-клиента (который мы используем для подключения к серверу). Заметьте, что установка программ требует привилегий root! Если вы не вошли в систему как root, пожалуйста сделайте это сейчас! (su root и затем напечатайте ваш пароль). Затем установите клиента:

apt-get install openssh-client

Переключитесь обратно к сеансу для вашего нормального пользователя (не root, соответственно). Затем введите эти команды по порядку:

mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh

Мы сгенерируем нашу пару ключей, публичный и секретный ключи. Публичный ключ размещается на сервере, а вы входите в систему с вашим секретным ключом. Когда попросят, введите вашу парольную фразу (она будет необходима для будующего входа в систему, так что помните ее!):

ssh-keygen -t rsa -C "A comment... usually an email is enough here..."

Теперь мы скопируем публичный ключ (который мы уже сгенерировали только что выше) на наш (удаленный) сервер. Удаленный пользователь не должен быть root! Измените не-root пользователя по умолчанию в качестве удаленного пользователя. (Обратите внимание на двоеточие в конце строки! Это важно.)

scp -p id_rsa.pub remoteuser@remotehost:

Теперь мы зайдем в систему с помощью 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-окружение!

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

Отключение ее - хороший способ иметь надежную установку SSH. После этого вы можете войти в систему только с помощью пары ключей, так что будьте осторожны, не потеряйте их! Это совершенно необязательно, но безопасно для активации! Но до того, как сделать это, пожалуйста убедитесь, что аутентификация на основе ключей работает "из коробки". Сядьте перед сервером (то есть не входите удаленно, так как мы должны перезапустить SSH позже...) и введите эти команды вручную как root:

cd /etc/ssh
cp sshd_config sshd_config.orig
nano sshd_config

У вас появится на экране текстовый редактор nano с открытым главным конфигурационным файлом OpenSSH. Измените эти строки (не беспокойтесь, если любая из этих строк имеет отметку "#" в начале строки; если отметка есть, просто удалите решетку):

PermitRootLogin yes
PasswordAuthentication yes
UsePAM yes

На эти:

PermitRootLogin no
PasswordAuthentication no
UsePAM no

Теперь сохраните файл с помощью сочетания клавиш Ctrl + 0 и перезапустите SSH-сервер:

/etc/init.d/ssh restart

Будьте осторожны: если вы отключите аутентификацию по паролю, то вы не сможете зайти в систему с помощью паролей! Только аутентификация с помощью ключа будет доступна!

2 комментария:

Ant0ha комментирует...

Сотрите статью и оставьте всего одну команду ssh-copy-id

sivkaburka комментирует...

Спасибо. А еще лучше добавить новую статью с описанием этого более простого решения.