Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 15

Настройка SSH авторизации по ключам

Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp. Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования. SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера. Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет. Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.

Установка пакетов SSH

$ sudo apt-get install ssh

В CentOS

$ yum -y install openssh-server openssh-clients

После чего начнется процесс установки

Настройка SSH

Режим работы SSH-сервера с настройками по-умолчанию хоть и является вполне работоспособным для небольших частных сетей, всё же нуждается в задании некоторых важных параметров для использования на высоконадёжных публичных серверах. Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой

cat /etc/ssh/sshd_config

ssh.jpg

В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress. Первый глобально задаёт номер порта, через который будет работать соединение и если оставить его стандартным, т. е. 22, то велика вероятность, что он будет слишком часто сканироваться роботами. Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале. Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра

AddressFamily значение inet:  AddressFamily inet
ListenAddress 10.24.205.75:2123  ListenAddress 10.24.205.76:2124
PubkeyAuthentication yes
PasswordAuthentication no

Или же, в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю:

PermitEmptyPasswords no

Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами, например:

DenyUsers fred john  AllowGroups root clients administrators

Следует также отключать root-доступ:

PermitRootLogin no

Иногда, когда следует задавать мультисерверную конфигурацию, очень удобно использовать алиасы (Aliases), что позволяет настроить сразу несколько режимов доступа (с разными хостами, портами и т. д.) и использовать их, указывая при этом конкретный алиас:

$ ssh alias_name

Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в ~/.ssh/config. Здесь нужно не спутать с ssh_config! Пример:

Host your_alias  Port your_ssh_port  HostName 0.0.0.0 # IP или имя хоста  User your_user_name

Для применения сделанных настроек необходим перезапуск SSH-сервера:

$ systemctl restart sshd

или:

$ service sshd restart
$ ssh user_name@host_name

где user_name – имя пользователя в системе, host_name – имя узла, к которому производится подключение, например:

$ ssh fred@fredwebserver
$ ssh-keygen

Утилита предложит выбрать расположение ключей (лучше всё оставить по-умолчанию), обычно это каталог ~/.ssh/, ввести парольную фразу для закрытого ключа. После чего будут сгенерированы открытый ключ id_rsa.pub и закрытый — id_rsa. Теперь нужно скопировать открытый ключ, т. е. «слепок» закрытого на сервер. Проще всего этого можно добиться командой:

ssh-copy-id -i ~/.ssh/id_rsa.pub user_name@host_name

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

SSH — это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.

Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.

Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ sshимя_пользователя@айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ sshимя_пользователя@айпи_адрес-pпорт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:

Snimok-ekrana-ot-2019-01-09-12-42-19-1024x576.png

Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:

Snimok-ekrana-ot-2019-01-09-12-41-16-1024x576.png

Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:

Snimok-ekrana-ot-2019-01-09-12-41-23-1024x576.png

Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:

Snimok-ekrana-ot-2019-01-09-12-41-35-1024x576.png

Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

А в CentOS/Fedora:

Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:

Затем выберите Управление дополнительными компонентами:

ssh_windows3-1024x774.png

Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:

ssh_windows4-1024x774.png

Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.

ssh_windows5-1024x774.png

После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:

ssh_windows6-1024x285.png

Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

sshимя_пользователя@айпи_адрес-pпорт

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:

Утилита предложит добавить устройство в список известных:

ssh_windows8-1024x774.png

Затем предложит ввести пароль:

ssh_windows9-1024x774.png

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

ssh_windows10-1024x774.png

Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.

В этой статье мы расскажем про SSH: что это такое, как подключиться к серверу по SSH, как создать папку и архив, а также как по SSH изменить права на файлы и папки.

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

Подключение по SSH возможно на всех тарифных планах виртуального хостинга, кроме тарифа «Host-Lite». Если у вас заказан тарифный план «Host-Lite», повысьте тариф и у вас появится возможность соединения по SSH: Как повысить тарифный план хостинга?

Как подключиться к Windows-серверу по SSH? Если у вас заказан Windows хостинг или Windows VPS, то подключение по SSH невозможно. Управление услугой хостинга происходит через панель управления, а к Windows VPS можно подключиться с помощью RDP.

На тарифах виртуального хостинга не предоставляется возможность использования Midnight Commander. Данная возможность присутствует на VPS-серверах.

Как подключиться к серверу по SSH?

В зависимости от операционной системы, установленной на вашем домашнем компьютере (не путайте с ОС хостинга), для SSH подключения к серверу Linux-хостинга возможны следующие варианты:

  • Если на вашем компьютере установлена ОС Windows, то подключение происходит через Putty.
  • Для ОС Linux на компьютере доступно подключение к SSH через терминал.

На вашем компьютере установлена ОС Windows

Для подключения по SSH в ОС Windows мы рекомендуем использовать SSH-клиент PuTTy. Скачать клиент можно на официальном сайте (англоязычная версия).

Подключение по SSH Windows:

  1. 1.Запустите программу PuTTY;
  2. 2.

    На странице с основными настройками сеанса PuTTY, в поле «Host Name» введите IP-адрес сервера.

    Как узнать IP-адрес сервера?

    IP-адрес сервера указан в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. IP-сервера указан на вкладке «Доступы»:

    Если вы уже делегировали домен на сервер, вместо IP-адреса можно указать домен. Также в качестве хоста можно использовать технологический домен.

  3. 3.

    При первом подключении к серверу появится окно «Предупреждение безопасности PuTTY». Нажмите Да:

  4. 4.

    В открывшемся окне PuTTY введите ваш логин услуги хостинга вида «u1234567». Нажмите Enter. Затем введите ваш пароль от услуги хостинга и нажмите Enter. В целях безопасности вводимый пароль не отображается на экране в виде символов. Набирая пароль, вы не увидите на экране ни самого пароля, ни звёздочек.

    Чтобы вставить скопированный логин и пароль в окно PuTTy, нажмите Shift + Insert.

    Как узнать логин и пароль услуги хостинга?

    Логин и пароль услуги хостинга указаны в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. Логин и пароль указаны на вкладке «Доступы»:

    Важно: если вы несколько раз подряд ввели неправильный пароль и сервер заблокировал соединение по SSH (если PuTTY не подключается по SSH), обратитесь в техническую поддержку или подождите 2 часа. По истечении этого времени блокировка снимается автоматически.

Как только вы подключитесь по SSH, вы окажетесь в домашнем каталоге вашего хостинга. Консольные команды Linux представлены по ссылке. Обратите внимание: многие из этих команд выполнить на виртуальном хостинге не получится (установка и удаление пакетов, монтирование файловых систем и др.), так как у вас нет root-доступа.

На вашем компьютере установлена Linux-подобная ОС (как подключиться по SSH Ubuntu, Kubuntu, Fedora, …)

Для ОС Linux доступ по SSH осуществляется через терминал, который уже предустановлен в самой системе.

  1. 1.
    • в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал». Либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;
    • в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
    • в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
  2. 2.

    Введите команду:

    ssh u1234567@123.123.123.123

    Где u1234567 — логин учётной записи хостинга (Как узнать логин и пароль услуги хостинга?; 123.123.123.123 — IP-адрес сервера (Как узнать IP-адрес сервера?).

  3. 3.Нажмите «Enter», введите пароль услуги хостинга.

Готово, вы успешно завершили ssh-подключение через терминал.

Можно ли создать дополнительного SSH-пользователя?

На Hosting Linux подключение по SSH возможно только под основным логином хостинга (вида u1234567). Создать дополнительного пользователя SSH нельзя.

Как отключить доступ по SSH?

Чтобы отключить SSH-доступ на хостинге, напишите заявку в службу поддержки. В заявке сообщите ваш логин хостинга (вида u1234567), для которого необходимо отключить доступ по SSH.

Как создать архив по SSH?

Создание архива tar.gz

Подключитесь к серверу по SSH и выполните команду:

tar -czvf name.tar.gz path/folder-name/
  • Данная команда создаст архив папки path/folder-name/. Название архива — name.tar.gz.
  • Все файлы будут сжаты при помощи gzip.
  • В процессе создания архива будет показан процесс архивации. Если данная информация вам не нужна, уберите ключ «v» из команды.

Разархивация происходит при помощи команды:

tar -xzvf name.tar.gz

Создание архива zip

Подключитесь к серверу по SSH и выполните команду:

zip -r имя-архива.zip /путь-к-папке    # пример  zip -r log.zip /var/log

В результате команды из примера будет создан архив папки /var/log со всем её содержимым. Имя созданного архива: log.zip. Разархивировать можно будет при помощи команды:

unzip имя-архива.zip

Как создать или удалить папку по SSH?

Чтобы создать папку, подключитесь к серверу по SSH и используйте команду:

mkdir new_folder_name

Где new_folder_name — имя создаваемой папки.

После подключения по SSH удалить папку можно с помощью команды:

rm -r folder_name

Где folder_name — имя удаляемой папки. Ключ —r делает рекурсивное удаление, то есть удаляет папку со всеми вложенными в неё папками и файлами.

Как изменить права на файлы и папки по SSH?

Чтобы настроить права доступа к отдельному файлу:

  1. 1.Подключитесь по SSH.
  2. 2.

    Выполните команду:

    chmod 755 /var/www/file_name

    Где /var/www/file_name — полный путь до вашего файла (/полный-путь-до-корневой-папки-сайта/сам-файл).

Готово! Права на файлы/папки будут изменены.

Чтобы рекурсивно настроить доступ ко всем папкам и файлам на вашем сайте:

  1. 1.Подключитесь по SSH.
  2. 2.

    Выполните команды:

    find /dir_name -type d -exec chmod 755 {} 
    find /dir_name -type f -exec chmod 644 {} 

    Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).

    Первая команда изменит права для всех директорий внутри указанной на 755. Вторая — для файлов внутри указанной директории на 644.

Готово! Права на файлы/папки будут изменены.

В качестве альтернативного способа вы можете использовать команду, чтобы сначала задать права всем файлам:

chmod -R 644 /dir_name

А затем назначить права 755 только на папки:

find /dir_name -type d -exec chmod 755 {} 

Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).

183

Связанные статьи

Связанные темы

—>

Не нашли ответа на свой вопрос?

Заявка в службу поддержкиИспользуемые источники:

  • https://itproffi.ru/ustanovka-i-nastrojka-servera-ssh-v-linux/
  • https://losst.ru/kak-podklyuchitsya-po-ssh
  • https://www.reg.ru/support/hosting-i-servery/nachalo-raboty-i-dostupy/kak-podklyuchitsya-po-ssh

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации