Установка и настройка SSH

SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов).

Команда установки в Ubuntu:

sudo apt-get install ssh

В CentOS так (вторая команда включает автозапуск SSH сервера при запуске системы):

sudo yum install openssh-server
sudo chkconfig sshd on
sudo service sshd start

Для проверки можно набрать:

ssh localhost

Пример подключения с сервера на сервер (порт по умолчанию 22 можно не указывать):

ssh -l USERNAME ip -p22
ssh username@ip -p22

Копирование файла на сервер в директорию пользователя:

scp -P 22 /home/user/file.zip username@192.168.1.1:/

Для отключения от ssh сервера служит команда exit, чтобы ее не набирать можно нажать комбинацию клавиш Ctrl+D.

Редактируем стандартный файл конфигурации:

sudo nano /etc/ssh/sshd_config

Опишу несколько параметров:
Port — порт на который сервер будет принимать подключения. Нужно писать в самом начале конфига.
Protocol — версия протокола по которой можно подключаться, стандартное значение = 2, можно указать несколько через запятую. Версия 2 более безопасная чем 1.
HostKey — файл с частными ключами хоста. sshd не будет принимать файлы с атрибутами чтения для всех.
UsePrivilegeSeparation — предпочитаемое значение yes. В целях безопасности при прохождении аутентификации на сервер создается дочерний процес с наинизшими правами, при успешной — пользователь получает соответствующие ему права.
KeyRegenerationInterval — время регенерации ключа, необходимо для того чтобы злоумышленник перехвативший ключ не успел его расшифровать. Значение 0 отключает регенерацию.
ServerKeyBits — длинна ключа сервера.
SyslogFacility — код сообщения для syslog сервера. Стандартное значение AUTH, в этом случает сервер логов будет заносить информацию выдаваемую сервером sshd в файл /var/log/auth.log.
LogLevel — уровень выдаваемой информации в логи. Возможные значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3. Стандартное — INFO.
LoginGraceTime — время ожидания в секундах аутентификация пользователя в системе. Если пользователь не успел ввести логин и пароль — соединение обрывается.
PermitRootLogin — в целях безопасности предпочитаемое значение — no. Параметр позволяющий или запрещающий вход на сервер пользователем root.
StrictModes — параметр позволяет проверять серверу sshd атрибуты и владельца файлов конфигурации и директории пользователя перед тем как разрешить доступ к серверу. Стандартное значение — yes.
RSAAuthentication — разрешает поключение к серверу только по ключу RSA, используется для протокола 1.
PubkeyAuthentication — разрешает поключение к серверу по открытому ключу, используется для протокола 2.
IgnoreRhosts — игнорирование содержания файлов .rhosts и .shosts, при аутентификации RhostsRSAAuthentication и HostbasedAuthentication. Учитываться будут только /etc/hosts.equiv и /etc/shosts.equiv.
RhostsRSAAuthentication — параметр разрешающий аутентификацию по файлам .rhosts или /etc/hosts.equiv, используется для протокола 1.
HostbasedAuthentication

Немного дополнительных параметров которых нет в стандартном файле конфигурации:
ListenAddress — параметр указывает порт конкретно для каждого интерфейса. Пример:
ListenAddress 10.0.0.1
ListenAddress 10.0.0.2
PermitEmptyPasswords — параметр запрещает или разрешает подключаться к серверу пользователям с пустыми паролями.
PasswordAuthentication — разрешает либо запрещает аутентификацию по паролю. В случае отключения нужно включить аутентификацию по публичному ключу (PubkeyAuthentication yes) и указать параметром AuthorizedKeysFile путь к файлу с ключами, это метод позволяет защититься от прямого перебора паролей злоумышленниками.
MaxStartups 10:30:60 — установка максимального числа одновременных не авторизованных подключений. Если число превышает указанное, то все следующие подключения будут отброшены.

Параметры разрешают или запрещают подключаться к серверу только указанным через пробел пользователям или группам:
DenyUsers
AllowUsers
DenyGroups
AllowGroups

Например можно указать:

AllowUsers user1 user2 user3@192.168.1.105

AddressFamily — Укажите какое семейство ip адресов вы используете. Возможные параметры: any (любое), inet (только IPv4), inet6 (только IPv6).
TCPKeepAlive — Возможные значения yes/no. Посылает TCP сообщения клиенту, тем самым поддерживая соединение. В случае плохого интернет соединения пакеты могут не дойти и клиент будет отсоединен от сервера.
PrintMotd no — Указывает, должен ли выводиться на экран текст файла /etc/motd.
Banner — указывает путь к текстовому файлу, содержимое которого показывается на экране в момент аутентификации.
Subsystem sftp /usr/lib/openssh/sftp-server — включение протокола передачи файлов. По умолчанию он включен.

Перезагружаем SSH сервер чтобы изменения вступили в силу:

sudo /etc/init.d/ssh restart

Для подключения к ssh серверу из среды Windows можно использовать программу Putty.

Смотрите также мои статьи:

Оставьте комментарий

Добавить комментарий