Архив метки: freebsd



PuTTY: Безопасный вход на сервер FreeBSD по SSH без пароля

У моего бывшего начальника под руководством несколько серверов на FreeBSD. Каждый раз, ковыряясь с ними, мне приходилось вводить логин и пароль. Делал я это не каждый день, но если получал «тревожный» звонок от него, то я мог зависнуть в консоли надолго, а главное по несколько раз в день. Чтобы каждый раз не вводить цепочку логин-пароль, я решил добавить свой комп в доверенные.
1. Из комплекта PuTTY запускаем файл puttygen.exe.
2. Нажимаем на кнопку «Generate»:

3. Далее нужно водить в окне программы мышкой до тех пор, пока шкала прогресса не дойдет до конца:

4. На поле с ключом нажимаем правую кнопку мыши и выбираем «Select All», будет выделен весь текст ключа, после чего копируем его в буфер обмена:

В этом случае ключ копируется БЕЗ символов перевода каретки и новой строки, так что файл на сервере будет отличатся от сохраненного приватного ключа!

 

5. Будет создана пара ключей шифрования, сохраняем приватный ключ:

6. Нажимаем на кнопку «Save private key» (На запрос о сохранении БЕЗ пароля отвечаем утвердительно):

7. Сохраняем его на компьютере где-нибудь в папке Documents, например:
«C:\Users\Denis\Documents\PuTTY\SERVER_NAME_privatekey.ppk»
8. На всякий случай можно также сохранить файл публичного ключа (потом его можно будет удалить).
9. Закрываем окно утилиты puttygen.exe

10. Теперь запускаем Putty.exe и логинимся как обычно на сервер FreeBSD под тем пользователем, для которого нужен логин без запроса пароля.
11. Переходим в папку .ssh в домашней директории.
12. Создаем текстовый файл authorized_keys
13. Вставляем в этот файл скопированный на шаге 4 текст и сохраняем файл.
14. На папку назначаем права только для владельца, после чего с сервера можно выходить:

# chmod -R 700 .ssh/

или

# chmod go-rwx ~/.ssh

15. Можно создать новую сессию или загрузить старую, чтобы ее изменить:
PuTTY ConfigurationConnectionData
16. Задаем логин:

Вообще я против того, чтобы сидеть под рутом, но поскольку мы используем для автологина авторизацию по ключу, то пароль для рута можно сделать длинный и сложный, все равно он будет использоваться только в крайних случаях.

17. Переходим на следующую настройку:
PuTTY ConfigurationConnectionSSHAuth
18. Нажимаем на кнопку Browse… и выбираем сохраненный в п.5 приватный ключ:

19. Переходим в раздел Сессии:
PuTTY ConfigurationSession
20. Вводим данные (адрес сервера, порт и т.п.), название сессии и сохраняем ее:

21. Теперь можно залогиниться гораздо быстрее и безопаснее, чем с простым паролем:

Using username "root".
Authenticating with public key "rsa-key-20170928"
Last login: Thu Sep 28 12:22:06 2017 from broadband-xxx-xxx-xxx-xxx.moscow.rt.ru
FreeBSD 10.1-RELEASE (HPDL380E) #1: Sun Feb 22 18:49:33 KRAT 2015
root@xxxxxxxxxxx:~ #
Минус данного метода только в том, что если у хакера окажется ваш приватный ключ из п.7, то он также сможет им воспользоваться…

 



FreeBSD: В консоле PuTTY не выводится псевдографика

Подключаюсь с помощью PuTTY к серверу FreeBSD, запускаю Midnight Commander, но вместо символов псевдографики (которыми рисуются рамки MC) вижу лишь символы i, x, t, q и т.п.:

Работать конечно можно, но не очень удобно.

Можно решить вопрос, если перед запуском MC, в консоли выполнить следующее:

setenv LANG ru_RU.UTF-8

После этого вся псевдографика отрисовыватья будет нормально.

На том сервере, с которым я в тот момент работал, был шелл не bash, а csh, поэтому мне нужно было добавить в файл .cshrc следующую строку:

setenv LANG ru_RU.UTF-8

Если на сервере другой шелл, то соответственно править нужно другой файл.
Узнать, какой шелл используется, можно набрав в консоли:

env | grep SHELL

Будет выдано что-то вроде:

SHELL=/bin/csh

Все это будет работать, при условии, что в конфигурации PuTTY выставлено использование кодировки UTF8:
WindowTranslationCharacter set translationRemote character set.

Временное решение — запускать MC с ключом:

mc -ac

Чтобы сделать настройки перманентными для всех пользователей, можно внести изменения в файл /etc/login.conf:

#
# Russian Users Accounts. Setup proper environment variables.
#
rus-utf|RUS UTF-8:\
    :charset=UTF-8:\
    :lang=ru_RU.UTF-8:\
    :tc=default:

После чего файл сохранить и обновить базу:

cap_mkdb /etc/login.conf

Теперь нормально: