-
Мар20
SSH
Filed under: Без рубрики;Склейка из нескольких статей и свои замечания
Конфигурация сервера и создание ключей
# Порт на котором висит демон (можно задать и другой)
Port 22
# Использовать протокол только версии 2
Protocol 2
# Если не указывать, будет слушать на всех интерфейсах
ListenAddress 172.16.0.102
# Ключи сервера для протокола версии 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Вести логи (кто, когда, откуда)
SyslogFacility AUTH
LogLevel INFO
# для root закрываем SSH (безопасность)
PermitRootLogin no
# Разрешаем доступ юзерам только с группы ussh
AllowGroups ussh
# webadmin не входит в группу, ему доступ отдельно
AllowUsers webadmin
# Аутентификация для протокла версии 1 — отключаем
RSAAuthentication no
# Авторизация юзера по публичному ключу
PubkeyAuthentication yes
AuthorizedKeysFile /etc/ssh/authorized_keys
# Авторизация по IP — не безопасно. Отключаем
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts yes
IgnoreRhosts yes
# Полностью отключаем парольную аутентификацию
# Вход только по ключу. Если такой метод не устраивает
# поставьте yes
PasswordAuthentication no
# Блокируем пустые пароли
PermitEmptyPasswords no
# Разрешаем форвардинг TCP-трафика, в будущем понадобится
AllowTcpForwarding yes
# Для X11, надо
X11Forwarding yes
# Разрешаем создание туннелей
PermitTunnel yes
# SSH-ftp сервер
Subsystem sftp /usr/libexec/sftp-server
# Пупкину не нужно X11 по сети
Match User pupkin
X11Forwarding noСоздаем вручную ключи сервера (без пароля). По умолчанию при первом старте sshd сам создает ключи (1024bit и 2048bit), немного паранои не помешает 🙂
root@freebsd# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \ -P » -b 1024
root@freebsd# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \ -P » -b 4096
root@freebsd# ls -l /etc/ssh
total 160
-rw-r—r— 1 root wheel 1350 2009-10-13 17:09 authorized_keys
-rw-r—r— 1 root wheel 132839 2007-04-03 20:36 moduli
-rw-r—r— 1 root wheel 1419 2009-10-13 18:24 ssh_config
-rw——- 1 root wheel 668 2009-10-13 16:55 ssh_host_dsa_key
-rw-r—r— 1 root wheel 600 2009-10-13 16:55 ssh_host_dsa_key.pub
-rw——- 1 root wheel 3239 2009-10-13 16:55 ssh_host_rsa_key
-rw-r—r— 1 root wheel 732 2009-10-13 16:55 ssh_host_rsa_key.pub
-rw-r—r— 1 root wheel 3096 2009-10-13 23:08 sshd_configТеперь, для каждого клиента создаем аккаунт на сервере и ключи
webadmin@freebsd# ssh-keygen -t dsa -P » -b 1024
webadmin@freebsd# ssh-keygen -t rsa -P » -b 4096Ключи сохраняются в $HOME/.ssh Там же и все пользовательские настройки ssh-клиента
Публичные ключи (расширение .pub) добавляем на сервер в /etc/ssh/authorized_keys. Здесь есть два пути
Первый — копируем ключи на сервер (по сети или на флешке) и вручную заносим в список authorized_keysroot@freebsd# cat webadmin_rsa.pub >> /etc/ssh/authorized_keys
root@freebsd# cat webadmin_dsa.pub >> /etc/ssh/authorized_keysНастройка SSH сервера на аутентификацию по открытому ключу
SSH сервер естественно должен быть настроен на аутентификацию по ключам, приведу кусок, касающийся аутентификации, своего файла конфигурации, SSH сервера. Все что закомментированно в конфиге, отсюда убрал, для простоты восприятия:
PermitRootLogin yes
Данная директива нужна, если вы планируете работать под учетной записью root.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
UseLogin no
Обратите внимание на следующий момент, с приведенным выше вариантом конфигурации SSH сервера, при неудачной аутентификации по ключам, например если неправильно ввести секретную фразу ключей, будет предложена аутентификация по паролю. Что-бы изменить это поведение и например вообще не пускать пользователя root иначе, как по ключам, можно изменить в конфигурационном файле сервера, значение директивы PermitRootLogin сyes
наwithout-password
.Преобразование ssh публичного ключа для работы в putty
1. Для использования putty или plink нужно с помощью программы puttygen преобразовать полученый на сервере private key в формат для putty
Указать расположение файла id_rsa
Потом нажать Save private key и сохранить в формате *.ppk НЕ УКАЗЫВАЯ ПАРОЛЬ
Для подключения с помощью plink нужно с помощью параметра –i указать путь к ключу
Plink test@server –i d:/ssh/test.ppk
Для использования созданного ключа в putty нужно в меню putty в разделе ssh нужно выбрать пункт auth и в поле private key указать расположение ppk файла.Для организации защищенного соединения с сервером внутри офисной сети нужно сделать следующее(рассмотрим на примере RDP):
Запустить ssh-клиент PuTTY
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
На вкладке Session указать IP ВНЕШНИЙ и порт 22
На вкладке Connection > SSH > Tunnels указать Destination
ЛОКАЛЬНЫЙ_IP_ТРЕБУЕМОГОСЕРВЕРА:3389, а Source port 3456 (любой свободный порт на твей
машине) и нажать Add.
Нажать Open
В открывшемся консольном окне указать:
Login: ……
Password: ……
Должна запустится командная строка FreeBSD
Затем, можешь запускать в винде удаленный терминал mstsc. В качестве удаленного компьютера указываешь 127.0.0.1:3456 (пуск — выполнить — вводишь mstsc /v: 127.0.0.1:3456)X-server Для Windows