Заметки о работе с ОС FreeBSD. Статьи об установке и настройке ПО для FreeBSD.

21 сентября 2011 г.

FreeBSD: putty и авторизация по ключам + sudo

Под виндой нам понадобятся:
puttygen.exe - для создания приватного (Private Key) и публичного (Public Key) ключей.
pageant.exe - агент, который нужно запустить и добавить в него приватный ключ.
putty.exe - собственно, сам Putty.

Всё это есть здесь: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Запускаем puttygen.exe, нажимаем кнопку Generate и хаотично водим мышкой в окне.
Копируем в буфер обмена появившийся публичный ключ. И пока не закрываем puttygen.

На FreeBSD заходим в домашнюю директорию (не под root)
[15:29 lehan@test249 /]# cd ~

Создаем каталог .ssh
[15:30 lehan@test249 /home/lehan]# mkdir .ssh

Назначаем на него права, чтобы никто кроме нас не получил к нему доступа.
[15:32 lehan@test249 /home/lehan]# chown lehan .ssh && chmod 700 .ssh

Создаём файл authorized_keys
[15:32 lehan@test249 /home/lehan/.ssh]# touch authorized_keys

Также строго назначаем на него права
[15:32 lehan@test249 /home/lehan/.ssh]# chown lehan authorized_keys && chmod 600 authorized_keys

Редактируем файл

[15:33 lehan@test249 /home/lehan/.ssh]# edit authorized_keys
В редакторе жмём Shift+Insert и копируем публичный ключ из буфура обмена.
Затем Esc и два раза Enter :)

Теперь нужно немного поправить конфиг sshd.
[15:38 lehan@test249 /home/lehan/.ssh]# edit /etc/ssh/sshd_config

RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

Остальное не важно в данном случае.

Ну и перезапускаем sshd. Не забываем залогиниться под root или используем sudo (/usr/ports/security/sudo)
[15:39 lehan@test249 /home/lehan/.ssh]# sudo /etc/rc.d/sshd restart

Возвращаемся к puttygen.


В поле Key passphrase вводим пароль (ключ будет зашифрован этим паролем) и повторяем пароль в поле Confirm passphrase.

Нажимаем кнопку "Save private key" и сохраняем свой приватный ключ в надёжное место. Но у Putty должен быть доступ в это место.

Открываем putty. Выбираем нужную сессию. Жмём Load.
В разделе Connection - Data находим пункт Auto-login username и пишем туда имя пользователя. В моём случае - lehan.

В разделе Connection - SSH - Auth находим пункт Private key file for authentication и вводим туда путь до своего приватного ключа (Private Key), который мы ранее сохранили в недёжном месте.

Переходим в Session и не забываем нажать на Save.


Запускаем pagent.exe. Он появится в системном трее (рядом с часами).
Нажимаем на него правой кнопкой мыши и выбираем Add Key. Указываем пусть к своему приватного ключу.
Далее ярлык для запуска pagent лучше добавить в автозагрузку.

Всё.

P. S.: Ещё можно создать отдельные ярлыки на рабочий стол для каждой сессии.
Для этого дописываем -load sessionname, где sessionname - название сессии в Putty.

P. P. S.: Чтобы не ввозить после этого пароль от root и не делать каждый раз "su -", можно установить утилиту sudo.

[15:41 lehan@test249 /home/lehan/.ssh]# cd /usr/ports/security/sudo
[15:47 lehan@test249 /usr/ports/security/sudo]# make install clean

Далее нужно немного отредактировать конфиг
[15:48 lehan@test249 /usr/ports/security/sudo]# edit /usr/local/etc/sudoers


Раскоментируем эту строку, чтобы дать возможность всем пользователям, входящим в группу wheel, использовать sudo.
%wheel ALL=(ALL) ALL

Теперь из под непривилегированного пользователя можно выполнять различные команды. Как в линуксе прям.
[15:48 lehan@test249 /home/lehan]# sudo edit /etc/rc.conf

А это аналог "su -"
[15:48 lehan@test249 /home/lehan]# sudo -s