Соединения SSH могут вводить в заблуждение, поэтому вот краткое изложение того, что я узнал за последние несколько недель, используя этот протокол для подключения к виртуальным экземплярам Linux в рамках моего проекта Insurance Tax Validator.

В эпоху, когда киберпреступность находится на пике 📈, технические руководители разрабатывают новые и интересные методы для защиты соединений и данных. Без сомнения, мы боялись, что кто-то узнает наш пароль в Facebook или Instagram, потому что ничто не помешает им войти в ваш профиль.

Разработчики создают свои собственные экземпляры Linux и в дальнейшем используют ресурсы своего компьютера для их запуска. Этот метод медленный и неэффективный при длительном использовании. Здесь мы должны поблагодарить облачных поставщиков за размещение экземпляров Windows или Linux в облаке и предоставление нам возможности удаленного подключения и управления этими машинами. Но если эти размещенные в облаке виртуальные машины общедоступны для всех и каждого, что может помешать хакеру подключиться к ним и использовать их для майнинга биткойнов? Здесь протокол соединения SSH спасает положение.

Что это? 🤷‍♀️

Протокол SSH (также называемый Secure Shell) использует шифрование для защиты соединения между клиентом и сервером. Вся аутентификация пользователя, команды, вывод и передача файлов зашифрованы для защиты от атак в сети. Подробнее о том, как работает протокол SSH, смотрите на странице протокола.

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

Документы RFC 📝

Когда протокол SSH стал популярным, Тату Юлонен отнесла его в IETF для стандартизации. Теперь это интернет-стандарт, описанный в следующих документах:

RFC 4251 — The Secure Shell (SSH) Protocol Architecture
RFC 4253 — The Secure Shell (SSH) Transport Layer Protocol
RFC 4252 — The Secure Shell (SSH) Authentication Protocol
RFC 4254 — The Secure Shell (SSH) Connection Protocol

Модель OSI ✏️

Модель OSI была первоначально разработана группой Open Systems Interconnection для продвижения протокола OSI в попытке создать стандартизированную сетевую архитектуру для сетевых коммуникаций. К сожалению, хотя протокол OSI поддерживал больше виртуальных адресов, его сложность сделала протокол TCP/IP более популярным среди сетевых специалистов. По иронии судьбы, простота протокола TCP/IP привела к исчерпанию адресов IPv4, а его новый протокол IPv6 очень напоминает по сложности исходный протокол OSI. Протокол SSH является частью Уровня 7: Прикладной уровень.

SSH — это протокол прикладного уровня модели OSI, использующий криптографию, чтобы обеспечить удаленный вход в систему и другие сетевые службы для безопасной работы в незащищенной сети. SSL работает внутри TCP и шифрует данные внутри TCP-пакетов. IPsec заменяет IP зашифрованной версией уровня IP.

Лучшие практики ⚠️

Многие будущие разработчики иногда используют самый простой подход, когда речь идет о SSH, например, вход без пароля. Ничто, кроме IP-адреса, не позволяющее пользователям Интернета подключаться к своему SSH, ясно, что в этом случае SSH можно сделать небезопасным. Чтобы всегда быть на высоте, когда дело доходит до SSH, выполните следующие действия:

  1. Включите SSH на вашем пульте 🖥
  2. Получить IP с удаленного 🖥
  3. Создайте ключи SSH (общедоступные 🔑 на удаленном компьютере и закрытые 🔐 на клиенте).
  4. Защитите паролем частную 🔑
  5. Делитесь 🔑 между 💻 в LINUX или WINDOWS
  6. Установить соединение через командную строку

1. Как включить SSH ✅

Debian:        LINK
Oracle Linux:  LINK
Fedora:        LINK
Arch Linux:    LINK
Centos:        LINK
For Windows remote connections, use RDC: LINK

2. Получите IP-адрес 🖥

Как правило, разработчики используют IPV4, когда речь идет о соединениях SSH. Используйте следующие команды терминала для отображения IP-адреса текущего компьютера:

Linux
~ curl ifconfig.me
~ curl ipinfo.io/ip
~ curl api.ipify.org
~ curl checkip.dyndns.orgifconfig -a
~ ip addr (ip a)
Windows
c:\> ipconfig
c:\> ipconfig /all

3. Открытый ключ 🔑

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

RFC 4716 — Формат файла открытого ключа Secure Shell (SSH)

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

Windows:  LINK
Linux:    LINK
MacOS:    LINK

Подробное руководство 🛠

Эта статья только поверхностно касается SSH и его функций, чтобы узнать больше о вариантах использования SSH или о том, что можно и чего нельзя делать, перейдите по одной из ссылок ниже:

SSH for Beginners:  LINK
SSH Tutorials:      LINK
SSH on Linux:       LINK
SSH Basics:         LINK
SSH Examples:       LINK

Или посмотрите это замечательное видео от ребят из Traversy Media:

[статья~] $ sudo shutdown 🏁

Будь то экземпляр Windows или Linux, теперь все готово для безопасного подключения к удаленному устройству.

Если вам нужна виртуальная машина, но у вас нет необходимых вычислительных ресурсов для размещения и использования собственной, Oracle поможет вам. Благодаря непревзойденным ценам на облачные услуги у вас есть возможность бесплатно опробовать все доступные облачные приложения в течение 30 дней без каких-либо условий.

Подпишитесь, чтобы получить: Бесплатная 30-дневная пробная версия услуг Oracle Cloud.

Спасибо, что нашли время, чтобы прочитать мою статью, чтобы увидеть больше подобных сообщений, подпишитесь на меня в Linkedin, Twitter или Medium.

  • *Все представления принадлежат мне, а не Oracle**

📝 Читайте эту историю позже в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слушайте самые примечательные новости недели в области технологий, ожидающие в вашем почтовом ящике. Читать информационный бюллетень Noteworthy in Tech.