Настройка сервера SSH
В FreeBSD SSH-сервер установлен по умолчанию, нам необходимо его просто включить и немного настроить.
Первым делом добавим его для автостарта в /etc/rc.conf:
Настройка конфигурационного файла
Конфигурационный файл сервера находится по адресу /etc/ssh/sshd_config, а клиента в /etc/ssh/ssh_config.
Port 2222
#рекомендовано использовать протокол версии не ниже 2, так как SSH2 разработан с учетом уязвимостей в SSH1.
Protocol 2
#Не использовать ДНС
UseDNS no
#Опция "ListenAddress" определяет IP адрес интерфейса к которому подключен сокет ssh демона. По умолчанию это "0.0.0.0";
#для улучшения безопасности вы можете ограничиться только одним адресом.
#ListenAddress 0.0.0.0
#AddressFamily any
#ListenAddress ::
#Опция "HostKey" определяет место содержащее приватный ключ сервера.
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#Опция "KeyRegenerationInterval" определяет как долго в секундах сервер должен ждать перед автоматической регенерацией своего ключа.
#Эта опция защиты предназначена для предотвращения расшифровки захваченного сеанса связи.
#KeyRegenerationInterval 1h
#Опция "ServerKeyBits" определяет как много бит используется в ключе сервера. Эти биты используются когда демон стартует для генерации RSA ключа.
#ServerKeyBits 768
# Logging
# obsoletes QuietMode and FascistLogging
#Опция "SyslogFacility" определяет с какого средства (facility) поступают сообщения в syslog от sshd.
#facility представляет подсистему, которая создает сообщение, в нашем случае AUTH.
#SyslogFacility AUTH
#Опция "LogLevel" определяет уровень важности сообщения поступающего системе syslog от sshd. INFO - хороший выбор.
#Смотрите страницу man для sshd для получения большей информации о других возможностях.
LogLevel INFO
#Разрешаем доступ только конкретным пользователям. Для разделения нескольких имен используйте пробелы:
AllowUsers root
#через какое время произойдет разрыв соединения, если пользователь не введет пароль.
LoginGraceTime 30 # 30 sec
#Опция "PermitRootLogin" определяет может ли root подключаться, используя ssh.
PermitRootLogin yes
#Опция "StrictModes" определяет должен ли ssh проверять права пользователей в их домашних каталогах и файлы rhosts перед тем, как пустить на сервер.
#Эта опция должна всегда быть установлена в "yes", потому что иногда пользователи могут случайно оставить свои каталоги и файлы открытыми всем для #записи.
#StrictModes yes
# Пользователь имеет право на 4 попытки авторизации.
MaxAuthTries 4
#используется для протокола SSH1
#RSAAuthentication yes
#разрешаем аутентификацию пользователя по его публичному ключу
PubkeyAuthentication yes
#путь к файлу с публичными ключами ssh-rsa
AuthorizedKeysFile .ssh/authorized_keys
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#Опция "IgnoreUserKnownHosts" определяет должен ли ssh демон игнорировать
#пользователей "$HOME/.ssh/known_hosts" во время RhostsRSAAuthentication.
#IgnoreUserKnownHosts no
#Опция "IgnoreRhosts" определяет должны ли файлы ~/.rhosts или ~/.shosts использоваться при аутентификации.
#Из соображений безопасности рекомендуется не использовать эти файлы.
#IgnoreRhosts yes
#Опция "PasswordAuthentication" определяет можно ли использовать аутентификацию по паролю.
#Для лучшей защищенности эта опция должна быть установлена в "yes".
PasswordAuthentication yes
#Опция "PermitEmptyPasswords" определяет позволяет ли сервер входить на сервер с пустыми паролями.
#Если вы используете утилиту "scp" для автоматического создания резервных копий через сеть, то нужно установить эту опцию в "yes".
#PermitEmptyPasswords no
# Change to no to disable PAM authentication
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'no' to disable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM yes
#разрешить маршрутизацию tcp-пакетов
#AllowTcpForwarding yes
#разрешить или нет доступ хостам доступ к перенаправленным портам
#GatewayPorts no
#Опция "X11Forwarding" определяет должен ли сервер перенаправлять X11 пакеты или нет.
#Так как мы установили сервер без GUI, то эту опцию устанавливаем в no.
X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#Опция "PrintMotd" определяет должен ли ssh демон печатать содержимое файла "/etc/motd", когда пользователь входит на сервер.
#Файл "/etc/motd" также известен как "сообщение дня".
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#при подключении будет отображаться текстовое приглашение в систему с файла banner.txt
Banner /etc/ssh/banner.txt
#SFTP-сервер (SSH File Transfer Protocol) встроен в OpenSSH и по умолчанию включен
Subsystem sftp /usr/libexec/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
Далее перезагружаем демон sshd:
Stopping sshd.
Starting sshd.
[root@router /etc/rc.d]#
Для подключения к серверу SSH введите:
Если кодировка, как у меня на Linux - UTF-8, а подключаемся к FreeBSD у которой кодировка KOI8-R, тогда запускаем командой с перекодировкой в локаль KOI8-R:
Аутентификация по публичному ключу ssh-rsa
На клиенте генерируем RSA-ключ с помощью программы ssh-keygen:
Generating public/private rsa key pair.
#введите имя файла в который необходимо сохранить ключ
Enter file in which to save the key (/root/.ssh/id_rsa):
#введите пароль (не пустой):
Enter passphrase (empty for no passphrase):
#повторите ввод пароля
Enter same passphrase again:
#куда будут сохранены ключи
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
93:8a:e7:11:16:9b:d9:20:ed:5e:51:b5:e4:1a:1d:ae root@mops
The key's randomart image is:
root@mops:/home/vlymar#
который находится в /root/.ssh/id_rsa.pub и имеет вид:
далее заходим на SSH сервер и копируем RSA-ключ созданный на клиенте в /root/.ssh/authorized_keys сервера
теперь можем попробовать зайти на SSH сервер без ввода пароля.
- Войдите на сайт для отправки комментариев
- Версия для печати