Что такое ssh доступ

Что такое протокол SSH

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

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

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

Что значит «протокол»?

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

Пример: вы вводите команду удаления файла, и эта команда передается на другой компьютер и выполняется там. Ответ (или сообщение об ошибке) возвращается и показывается на вашем компьютере.

Что значит «защищенный»?

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

Для чего нужен SSH?

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

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

Для подключения к удаленной машине по SSH нужен клиент — специальная программа. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал. В Windows нужно скачать сторонний клиент, например, Putty.

Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт. Вот как выглядит команда при использовании консольного клиента (в терминале):

Например, для подключения к серверу 52.307.149.244 в аккаунт ivan нужно ввести:

В графическом клиенте вроде Putty нужно ввести ту же информацию в соответствующие поля:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Fingerprint

При первом подключении появится сообщение:

Введите yes в первый раз.

Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint.

Если fingerprint не меняется, то такое сообщение не будет появляться.

Подключение по SSH по паролю

Простейший вариант — подключение по паролю. После ввода команды ssh система запросит пароль:

Пароль придется вводить каждый раз.

Подключение по SSH по ключу, без пароля

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

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

Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.

Генерация ключей

Создадим пару ключей:

Программа запустится и спросит, куда сохранять ключи:

Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.

Теперь у вас есть два файла:

/.ssh/id_rsa — приватный ключ. Никогда никому и никуда не передавайте его!

/.ssh/id_rsa.pub — публичный ключ. Спокойно распространяйте его.

В Windows можно использовать ssh-gen в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.

Загрузка публичного ключа на сервер

Нужно добавить публичный ключ на сервер в файл

Другой способ — подключиться по паролю, открыть в редакторе файл

/.ssh/authorized_keys и добавить в конец текст из вашего файла

После включения соединений по ключу рекомендуется отключить подключение по паролю.

ssh-agent

При работе с ключами возможны две неудобные ситуации:

ssh-agent решает эти проблемы. Этот агент аутентификации (authentication agent) работает на фоне в *nix-системах. В зависимости от системы, вам, возможно, придется установить и настроить его автозапуск самостоятельно.

Если добавить ключ к агенту, то:

ssh-add /home/demo/.ssh/id_rsa добавит ключ id_rsa в запущенный в системе агент. Если у него есть passphrase, то агент попросит ввести его.

Если запустить ssh-add без аргументов, то будут добавлены ключи

ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.

Форвардинг (проброс) ключей

Если вы подключились к удаленному серверу X, и с него хотите подключиться к другому серверу Y, например, чтобы сделать git pull с GitHub’а, то придется держать копию ваших ключей на сервере X.

Ключи, добавленные к агенту аутентификации (ssh-agent) станут доступными на удаленном сервере. При этом файлы-ключи физически не будут находиться на сервере.

Частые вопросы

Чем Telnet отличается от SSH?

Telnet это конкретная программа с графическим интерфейсом, с помощью которой можно соединяться по SSH. Обычно ей пользуются только Windows пользователи, в Linux и MacOS используют консольную утилиту ssh.

Источник

Памятка пользователям ssh

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Управление ключами

Теория в нескольких словах: ssh может авторизоваться не по паролю, а по ключу. Ключ состоит из открытой и закрытой части. Открытая кладётся в домашний каталог пользователя, «которым» заходят на сервер, закрытая — в домашний каталог пользователя, который идёт на удалённый сервер. Половинки сравниваются (я утрирую) и если всё ок — пускают. Важно: авторизуется не только клиент на сервере, но и сервер по отношению к клиенту (то есть у сервера есть свой собственный ключ). Главной особенностью ключа по сравнению с паролем является то, что его нельзя «украсть», взломав сервер — ключ не передаётся с клиента на сервер, а во время авторизации клиент доказывает серверу, что владеет ключом (та самая криптографическая магия).

Генерация ключа

Свой ключ можно сгенерировать с помощью команды ssh-keygen. Если не задать параметры, то он сохранит всё так, как надо.

Ключ можно закрыть паролем. Этот пароль (в обычных графических интерфейсах) спрашивается один раз и сохраняется некоторое время. Если пароль указать пустым, он спрашиваться при использовании не будет. Восстановить забытый пароль невозможно.

Структура ключа

/.ssh/id_rsa.pub — открытый ключ. Его копируют на сервера, куда нужно получить доступ.

/.ssh/id_rsa — закрытый ключ. Его нельзя никому показывать. Если вы в письмо/чат скопипастите его вместо pub, то нужно генерировать новый ключ. (Я не шучу, примерно 10% людей, которых просишь дать ssh-ключ постят id_rsa, причём из этих десяти процентов мужского пола 100%).

Копирование ключа на сервер

/.ssh/authorized_keys и положить туда открытый ключ, то можно будет заходить без пароля. Обратите внимание, права на файл не должны давать возможность писать в этот файл посторонним пользователям, иначе ssh его не примет. В ключе последнее поле — user@machine. Оно не имеет никакого отношения к авторизации и служит только для удобства определения где чей ключ. Заметим, это поле может быть поменяно (или даже удалено) без нарушения структуры ключа.

Если вы знаете пароль пользователя, то процесс можно упростить. Команда ssh-copy-id user@server позволяет скопировать ключ не редактируя файлы вручную.

Замечание: Старые руководства по ssh упоминают про authorized_keys2. Причина: была первая версия ssh, потом стала вторая (текущая), для неё сделали свой набор конфигов, всех это очень утомило, и вторая версия уже давным давно переключилась на версии без всяких «2». То есть всегда authorized_keys и не думать о разных версиях.

Если у вас ssh на нестандартном порту, то ssh-copy-id требует особого ухищрения при работе: ssh-copy-id ‘-p 443 user@server’ (внимание на кавычки).

Ключ сервера

/.ssh/known_hosts. Узнать, где какой ключ нельзя (ибо несекьюрно).

Если ключ сервера поменялся (например, сервер переустановили), ssh вопит от подделке ключа. Обратите внимание, если сервер не трогали, а ssh вопит, значит вы не на тот сервер ломитесь (например, в сети появился ещё один компьютер с тем же IP, особо этим страдают всякие локальные сети с 192.168.1.1, которых в мире несколько миллионов). Сценарий «злобной man in the middle атаки» маловероятен, чаще просто ошибка с IP, хотя если «всё хорошо», а ключ поменялся — это повод поднять уровень паранойи на пару уровней (а если у вас авторизация по ключу, а сервер вдруг запросил пароль — то паранойю можно включать на 100% и пароль не вводить).

Ключ сервера хранится в /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_rsa_key.pub. Их можно:
а) скопировать со старого сервера на новый.
б) сгенерировать с помощью ssh-keygen. Пароля при этом задавать не надо (т.е. пустой). Ключ с паролем ssh-сервер использовать не сможет.

Заметим, если вы сервера клонируете (например, в виртуалках), то ssh-ключи сервера нужно обязательно перегенерировать.

Старые ключи из know_hosts при этом лучше убрать, иначе ssh будет ругаться на duplicate key.

Копирование файлов

Передача файлов на сервер иногда может утомлять. Помимо возни с sftp и прочими странными вещами, ssh предоставляет нам команду scp, которая осуществляет копирование файла через ssh-сессию.

scp path/myfile user@8.8.8.8:/full/path/to/new/location/

Обратно тоже можно:
scp user@8.8.8.8:/full/path/to/file /path/to/put/here

Fish warning: Не смотря на то, что mc умеет делать соединение по ssh, копировать большие файлы будет очень мучительно, т.к. fish (модуль mc для работы с ssh как с виртуальной fs) работает очень медленно. 100-200кб — предел, дальше начинается испытание терпения. (Я вспомнил свою очень раннюю молодость, когда не зная про scp, я копировал

5Гб через fish в mc, заняло это чуть больше 12 часов на FastEthernet).

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

sshfs

Теория: модуль fuse позволяет «экспортировать» запросы к файловой системе из ядра обратно в userspace к соответствующей программе. Это позволяет легко реализовывать «псевдофайловые системы». Например, мы можем предоставить доступ к удалённой файловой системе через ssh так, что все локальные приложения (за малым исключением) не будут ничего подозревать.

Собственно, исключение: O_DIRECT не поддерживается, увы (это проблема не sshfs, это проблема fuse вообще).

Использование: установить пакет sshfs (сам притащит за собой fuse).

Собственно, пример моего скрипта, который монтирует desunote.ru (размещающийся у меня на домашнем комьютере — с него в этой статье показываются картинки) на мой ноут:

Делаем файл +x, вызываем, идём в любое приложение, говорим сохранить и видим:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Если вы много работаете с данными от рута, то можно (нужно) сделать idmap:

-o idmap=user. Работает она следующим образом: если мы коннектимся как пользователь pupkin@server, а локально работаем как пользователь vasiliy, то мы говорим «считать, что файлы pupkin, это файлы vasiliy». ну или «root», если мы коннектимся как root.

В моём случае idmap не нужен, так как имена пользователей (локальное и удалённое) совпадают.

Заметим, комфортно работать получается только если у нас есть ssh-ключик (см. начало статьи), если нет — авторизация по паролю выбешивает на 2-3 подключение.

Удалённое исполнение кода

ssh может выполнить команду на удалённом сервере и тут же закрыть соединение. Простейший пример:

ssh user@server ls /etc/

Выведет нам содержимое /etc/ на server, при этом у нас будет локальная командная строка.

Это нас приводит следующей фиче:

Проброс stdin/out

Допустим, мы хотим сделать запрос к программе удалённо, а потом её вывод поместить в локальный файл

ssh user@8.8.8.8 command >my_file

Допустим, мы хотим локальный вывод положить удалённо

mycommand |scp — user@8.8.8.8:/path/remote_file

Усложним пример — мы можем прокидывать файлы с сервера на сервер: Делаем цепочку, чтобы положить stdin на 10.1.1.2, который нам не доступен снаружи:

mycommand | ssh user@8.8.8.8 «scp — user@10.1.1.2:/path/to/file»

Есть и вот такой головоломный приём использования pipe’а (любезно подсказали в комментариях в жж):

Tar запаковывает файлы по маске локально, пишет их в stdout, откуда их читает ssh, передаёт в stdin на удалённом сервере, где их cd игнорирует (не читает stdin), а tar — читает и распаковывает. Так сказать, scp для бедных.

Алиасы

Скажу честно, до последнего времени не знал и не использовал. Оказались очень удобными.

Можно прописать общесистемные alias’ы на IP (/etc/hosts), но это кривоватый выход (и пользователя и опции всё равно печатать). Есть путь короче.

/.ssh/config позволяет задать параметры подключения, в том числе специальные для серверов, что самое важное, для каждого сервера своё. Вот пример конфига:

Все доступные для использования опции можно увидеть в man ssh_config (не путать с sshd_config).

Опции по умолчанию

По подсказке UUSER: вы можете указать настройки соединения по умолчанию с помощью конструкции Host *, т.е., например:

То же самое можно сделать и в /etc/ssh/ssh_config (не путать с /etc/ssh/sshd_config), но это требует прав рута и распространяется на всех пользователей.

Проброс X-сервера

Собственно, немножко я проспойлерил эту часть в примере конфига выше. ForwardX11 — это как раз оно.

и чудо, окошко логина в windows на нашем рабочем столе. Заметим, тщательно зашифрованное и неотличимое от обычного ssh-трафика.
Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Socks-proxy

Когда я оказываюсь в очередной гостинице (кафе, конференции), то местный wifi чаще всего оказывается ужасным — закрытые порты, неизвестно какой уровень безопасности. Да и доверия к чужим точкам доступа не особо много (это не паранойя, я вполне наблюдал как уводят пароли и куки с помощью банального ноутбука, раздающего 3G всем желающим с названием близлежащей кафешки (и пишущего интересное в процессе)).

Особые проблемы доставляют закрытые порты. То джаббер прикроют, то IMAP, то ещё что-нибудь.

Обычный VPN (pptp, l2tp, openvpn) в таких ситуациях не работает — его просто не пропускают. Экспериментально известно, что 443ий порт чаще всего оставляют, причём в режиме CONNECT, то есть пропускают «как есть» (обычный http могут ещё прозрачно на сквид завернуть).

Решением служит socks-proxy режим работы ssh. Его принцип: ssh-клиент подключается к серверу и слушает локально. Получив запрос, он отправляет его (через открытое соединение) на сервер, сервер устанавливает соединение согласно запросу и все данные передаёт обратно ssh-клиенту. А тот отвечает обратившемуся. Для работы нужно сказать приложениям «использовать socks-proxy». И указать IP-адрес прокси. В случае с ssh это чаще всего localhost (так вы не отдадите свой канал чужим людям).

Подключение в режиме sock-proxy выглядит так:

Вот так выглядит мой конфиг:

/etc/ssh/sshd_config:
(фрагмент)
Port 22
Port 443

/.ssh/config с ноутбука, который описывает vpn

(обратите внимание на «ленивую» форму записи localhost — 127.1, это вполне себе законный метод написать 127.0.0.1)

Проброс портов

Мы переходим к крайне сложной для понимания части функционала SSH, позволяющей осуществлять головоломные операции по туннелированию TCP «из сервера» и «на сервер».

Для понимания ситуации все примеры ниже будут ссылаться на вот эту схему:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Комментарии: Две серые сети. Первая сеть напоминает типичную офисную сеть (NAT), вторая — «гейтвей», то есть сервер с белым интерфейсом и серым, смотрящим в свою собственную приватную сеть. В дальнейших рассуждениях мы полагаем, что «наш» ноутбук — А, а «сервер» — Б.

Задача: у нас локально запущено приложение, нам нужно дать возможность другому пользователю (за пределами нашей сети) посмотреть на него.

Решение: проброс локального порта (127.0.0.1:80) на публично доступный адрес. Допустим, наш «публично доступный» Б занял 80ый порт чем-то полезным, так что пробрасывать мы будем на нестандартный порт (8080).

Итоговая конфигурация: запросы на 8.8.8.8:8080 будут попадать на localhost ноутбука А.

Опция -R позволяет перенаправлять с удалённого (Remote) сервера порт на свой (локальный).
Важно: если мы хотим использовать адрес 8.8.8.8, то нам нужно разрешить GatewayPorts в настройках сервера Б.
Задача. На сервере «Б» слушает некий демон (допустим, sql-сервер). Наше приложение не совместимо с сервером (другая битность, ОС, злой админ, запрещающий и накладывающий лимиты и т.д.). Мы хотим локально получить доступ к удалённому localhost’у.

Итоговая конфигурация: запросы на localhost:3333 на ‘A’ должны обслуживаться демоном на localhost:3128 ‘Б’.

Опция -L позволяет локальные обращения (Local) направлять на удалённый сервер.

Задача: На сервере «Б» на сером интерфейсе слушает некий сервис и мы хотим дать возможность коллеге (192.168.0.3) посмотреть на это приложение.

Итоговая конфигурация: запросы на наш серый IP-адрес (192.168.0.2) попадают на серый интерфейс сервера Б.

Вложенные туннели

Разумеется, туннели можно перенаправлять.

Усложним задачу: теперь нам хочется показать коллеге приложение, запущенное на localhost на сервере с адресом 10.1.1.2 (на 80ом порту).

Что происходит? Мы говорим ssh перенаправлять локальные запросы с нашего адреса на localhost сервера Б и сразу после подключения запустить ssh (то есть клиента ssh) на сервере Б с опцией слушать на localhost и передавать запросы на сервер 10.1.1.2 (куда клиент и должен подключиться). Порт 9999 выбран произвольно, главное, чтобы совпадал в первом вызове и во втором.

Реверс-сокс-прокси

Туннелирование

Если к этому моменту попа отдела безопасности не сияет лысиной, а ssh всё ещё не внесён в список врагов безопасности номер один, вот вам окончательный убийца всего и вся: туннелирование IP или даже ethernet. В самых радикальных случаях это позволяет туннелировать dhcp, заниматься удалённым arp-спуфингом, делать wake up on lan и прочие безобразия второго уровня.

(сам я увы, таким не пользовался).

Легко понять, что в таких условиях невозможно никаким DPI (deep packet inspection) отловить подобные туннели — либо ssh разрешён (читай — делай что хочешь), либо ssh запрещён (и можно смело из такой компании идиотов увольняться не ощущая ни малейшего сожаления).

Проброс авторизации

Если вы думаете, что на этом всё, то…… впрочем, в отличие от автора, у которого «снизу» ещё не написано, читатель заранее видит, что там снизу много букв и интриги не получается.

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

Для начала о простом пробросе авторизации.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Допустим, мы хотим подключиться к серверу 10.1.1.2, который готов принять наш ключ. Но копировать его на 8.8.8.8 мы не хотим, ибо там проходной двор и половина людей имеет sudo и может шариться по чужим каталогам. Компромиссным вариантом было бы иметь «другой» ssh-ключ, который бы авторизовывал user@8.8.8.8 на 10.1.1.2, но если мы не хотим пускать кого попало с 8.8.8.8 на 10.1.1.2, то это не вариант (тем паче, что ключ могут не только поюзать, но и скопировать себе «на чёрный день»).

Вызов выглядит так:

Удалённый ssh-клиент (на 8.8.8.8) может доказать 10.1.1.2, что мы это мы только если мы к этому серверу подключены и дали ssh-клиенту доступ к своему агенту авторизации (но не ключу!).

В большинстве случаев это прокатывает.

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

Есть ещё более могучий метод — он превращает ssh в простой pipe (в смысле, «трубу») через которую насквозь мы осуществляем работу с удалённым сервером.

Главным достоинством этого метода является полная независимость от доверенности промежуточного сервера. Он может использовать поддельный ssh-сервер, логгировать все байты и все действия, перехватывать любые данные и подделывать их как хочет — взаимодействие идёт между «итоговым» сервером и клиентом. Если данные оконечного сервера подделаны, то подпись не сойдётся. Если данные не подделаны, то сессия устанавливается в защищённом режиме, так что перехватывать нечего.

Эту клёвую настройку я не знал, и раскопал её redrampage.

Выглядит это так (циферки для картинки выше):

Повторю важную мысль: сервер 8.8.8.8 не может перехватить или подделать трафик, воспользоваться агентом авторизации пользователя или иным образом изменить трафик. Запретить — да, может. Но если разрешил — пропустит через себя без расшифровки или модификации. Для работы конфигурации нужно иметь свой открытый ключ в authorized_keys как для user@8.8.8.8, так и в user2@10.1.1.2

Разумеется, подключение можно оснащать всеми прочими фенечками — прокидыванием портов, копированием файлов, сокс-прокси, L2-туннелями, туннелированием X-сервера и т.д.

Источник

Что такое ssh доступ

SSH-доступ используется для управления VPS/VDS и выделенных серверов, а также активно применяется в хостинге. Мы рекомендуем SSH только пользователям с навыками системного администратора.

Как работает SSH

Подключение по SSH применяет логин на сервере, а SSH-пароль является паролем этого пользователя.

SSH-сервер передает данные входящих соединений на 22-ом TCP-порте сервера хоста, но администратор сервера может назначить любой порт, исходя из соображений безопасности.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Для шифрования SSH использует специальные ключи, с помощью которых кодируются все передаваемые между клиентом и хостом данные.

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

Симметричное шифрование

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

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

При установке соединения специальный алгоритм обмена ключами предварительно согласовывает ключ шифрования и потом использует его на протяжении всей сессии.

Асимметричное шифрование

Если вы используете для авторизации вместо пароля пару приватный+публичный ключ, то SSH применяет ассиметричное шифрование на этапе установки соединения. О том, как сгенерировать пару “приватный+публичный ключ”, читайте ниже.

Алгоритм подключения с асимметричными ключами работает так:

1. Хост и клиент используют свои публичные ключи для генерации общего секретного ключа шифрования сессии.
2. Затем хост шифрует данные публичным ключом и предлагает клиенту расшифровать их своим приватным ключом.
3. Если операция успешна, то клиент авторизуется на хосте с соответствующим именем пользователя.
4. Затем сессия продолжается уже с использованием симметричного шифрования.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Хэширование

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

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Подключение по паролю на виртуальном хостинге

На виртуальном хостинге SSH используется реже, чем на VPS/VDS и выделенных серверах. Его применяют лишь некоторые провайдеры, например, Beget.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

SSH-доступ в панели управления Beget

Чтобы работать с сервером при помощи командной строки Linux, пользователю нужно:
1. Включить опцию “SSH-доступ”.
2. Подключиться к своему серверу при помощи SSH-клиента, используя логин и пароль от личного кабинета.

На платформе Linux

SSH-Linux-клиент предустановлен на всех версиях операционной системы Linux. Также SSH-доступ заранее настроен на серверах под управлением Linux.

1. Пользователю Linux для применения SSH достаточно запустить терминал (так называется командная строка в Linux) и набрать команду:

2. Система предложит вам ввести пароль.
3. Произойдет соединение с удаленным компьютером-сервером, и вы сможете начать полноценную работу на нем.

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

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

На платформе Windows

На платформе Windows для использования протокола SSH разработано специальное программное обеспечение: SSH-клиенты.

Наиболее популярным является SSH Windows-клиент PuTTY, поддерживающий все современные стандарты шифрования для SSH.

1. Скачайте PuTTY с официального сайта на локальный компьютер, чтобы начать работу.
2. При запуске SSH-клиент PuTTY предложит ввести IP-адрес хоста для подключения. Например, 95.179.134.210.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

3. Затем откроется окно терминала и приглашение для ввода имени пользователя и пароля, после чего вы соединитесь с удаленным сервером.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Подключение по ключам

Для Linux

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

1. В терминале выполните команду:

2. Программа спросит, куда нужно сохранить ключи.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

5. Приватный и публичный ключи созданы.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

6. Чтобы загрузить публичный ключ на сервер в файл

/.ssh/authorized_keys, запустите на локальном компьютере команду:

Для Windows

SSH-Windows-клиент PuTTY умеет генерировать приватный и публичный ключи пользователя для их применения при подключении по SSH.

Для этого используется поставляемая в комплекте утилита puttygen.exe.

1. При запуске утилиты нажмите кнопку “Генерировать”.
2. Программа предложит вам подвигать мышью для создания случайной последовательности данных, затем генерируются ключи.
3. После создания ключи нужно сохранить на компьютер в виде текстовых файлов (Пункт “Сохранить сгенерированные ключи”, кнопки “Открытый ключ” и “Личный ключ” соответственно для публичного и приватного ключей).

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

7. После этого в самой программе PuTTY укажите имя пользователя для автовхода:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

8. Подключите в файл SSH приватный ключ, предварительно сохраненный в утилите puttygen.exe:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

9. После выполнения этих операций соединение с удаленным сервером по протоколу SSH произойдет без ввода пароля за счет пары публичный + приватный ключ:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Мы рекомендуем использовать пару приватный+публичный ключ как самый безопасный способ соединения по SSH.

Настройка SSH на сервере

На Linux-сервере за работу протокола SSH отвечает программа sshd из набора программного обеспечения openssh.

Конфигурационные файлы находятся в каталоге /etc/ssh.

Для управления настройками сервера SSH нужны привилегии суперпользователя root.

Сами настройки sshd не требуют изменений.

Мы советуем запретить подключение по SSH для пользователя root для повышения общей безопасности системы.

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Применение протокола SSH для копирования файлов

Для Linux-платформы при копировании файлов через SSH используется утилита SCP (secure copy).

Например, чтобы скопировать файл “data” с локальной машины на удаленный сервер, применяется команда вида “scp data admin@95.179.134.210:data”.

Утилита scp запросит пароль пользователя и затем выполнит копирование:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Для Windows платформы используется протокол SFTP (Secure FTP), разработанный как замена обычного FTP.

Поддержка SFTP есть в популярном клиенте Filezilla. Для соединения необходимо знать имя пользователя и его пароль на удаленном сервере.

1. Чтобы указать использование протокола SFTP, в Filezilla перед адресом удаленного сервера в соответствующем поле добавьте префикс “sftp://”:

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

2. После установки соединения по протоколу SFTP работа с файлами и каталогами на удаленном сервере в Filezilla происходит точно так же, как при использовании обычного FTP.

Безопасность

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

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

Провайдеры с виртуальным выделенным сервером (VPS)

Провайдеры предлагающие Linux-хостинг

Провайдеры предлагающие Windows-хостинг

Что такое ssh доступ. Смотреть фото Что такое ssh доступ. Смотреть картинку Что такое ssh доступ. Картинка про Что такое ssh доступ. Фото Что такое ssh доступ

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *