SSH или Secure Shell — это протокол удаленного управления, который позволяет пользователям получать доступ, контролировать и изменять свои удаленные серверы через Интернет. Служба SSH была создана как безопасная альтернатива незашифрованному Telnet и использует технологию шифрования, обеспечивающую шифрование всех коммуникаций с удаленными серверами. Он обеспечивает механизм аутентификации удаленных пользователей, передачи входных данных от клиента на хост и ретрансляции выходных данных обратно клиенту.
Пользователи Linux или macOS могут подключиться по SSH к удаленному серверу прямо из окна терминала. Пользователи Windows могут использовать SSH-клиенты, такие как Putty и XShell, для подключения к удаленным серверам. Как показано ниже, это типичное приглашение SSH.
Если вы используете Linux или Mac, использовать SSH легко. Если вы используете Windows, вам понадобится SSH-клиент для открытия SSH-соединения, например инструмент подключения SSH-клиента Tabby, который я использовал на рисунке выше.
Откройте терминал и выполните следующие действия:
Команды SSH состоят из трех разных частей:
ssh {user}@{host}
SSH Команда предписывает вашей системе включить зашифрованную безопасность. Shell соединять。{user}
Представляет учетную запись, к которой осуществляется доступ. Например, мы можем захотеть получить доступ root
пользователь,По сути, это синоним системного администратора.,Иметь полное право изменять что-либо в системе.。{host}
Относится к компьютеру, к которому мы хотим получить доступ. Это может быть с удаленного компьютера IP адрес (напр. 192.168.0.103) или имя домена (например. www.abc.test)。
Введите приведенную выше команду,Помнить{user}
и{host}
Замените на свой,Вам будет предложено ввести пароль для запрошенной учетной записи. После ввода пароля,На экране ничего не появится,Но ваш пароль на самом деле передается. После ввода,Нажмите еще раз Enter ключ. Если ваш пароль верен, вы увидите окно подключения к удаленному терминалу.
Существенным преимуществом SSH является использование шифрования для обеспечения безопасной передачи информации между хостом и клиентом. Хост относится к удаленному серверу, к которому вы хотите получить доступ, а клиент — к компьютеру, который вы используете для доступа к удаленному серверу. SSH использует три различные технологии шифрования:
Симметричное шифрование — это форма шифрования, при которой и клиент, и хост используют ключи для шифрования и дешифрования сообщений. Фактически, любой, у кого есть ключ, может расшифровать передаваемую информацию.
Симметричное шифрование часто называют шифрованием с общим ключом или шифрованием с общим секретом. Обычно используется только один ключ, иногда используется пара ключей, при этом один ключ можно легко вычислить на основе того, что можно сделать с помощью другого ключа.
Симметричные ключи используются для шифрования всего обмена данными во время сеанса SSH. И клиент, и сервер используют согласованный метод для получения ключа, и полученный ключ никогда не раскрывается третьей стороне.
Процесс создания симметричного ключа выполняется посредством алгоритма обмена ключами. Что делает этот алгоритм особенно безопасным, так это то, что ключ никогда не передается между клиентом и хостом.
Вместо этого два компьютера обмениваются общими данными, а затем используют их для независимого расчета ключа. Даже если другой компьютер захватит общедоступные данные, он не сможет вычислить ключ, поскольку алгоритм обмена ключами неизвестен.
Однако важно отметить, что токен ключа специфичен для каждого сеанса SSH и генерируется перед аутентификацией клиента. После создания ключа все данные, перемещаемые между двумя компьютерами, должны быть зашифрованы с использованием закрытого ключа. Сюда входит пароль, который пользователь вводит в консоль, поэтому учетные данные всегда защищены анализаторами сетевых пакетов.
Существует множество симметричных шифров шифрования, включая, помимо прочего, AES (расширенный стандарт шифрования, расширенный стандарт шифрования), CAST128, Blowfish и т. д. Прежде чем установить безопасное соединение, клиент и хост решают, какой шифр использовать, публикуя список поддерживаемых шифров в порядке предпочтения. Из шифров, поддерживаемых клиентом, шифр с наивысшим приоритетом, который появляется в списке хоста, будет использоваться в качестве двустороннего шифра.
Например, если двое Ubuntu 14.04 LTS Машина проходит SSH общение, они будут использовать aes128-ctr
в качестве пароля по умолчанию.
В отличие от симметричного шифрования, асимметричное шифрование использует два отдельных ключа для шифрования и дешифрования. Эти два ключа называются открытым ключом и закрытым ключом. Вместе эти два ключа образуют пару открытого и закрытого ключей.
Любой человек может зашифровать сообщение с помощью открытого ключа, и только получатель с помощью своего частного ключа может его расшифровать, и наоборот. Эти ключи состоят из большого количества, казалось бы, случайных чисел и символов, но как открытый, так и закрытый ключи соединяются с помощью сложных математических алгоритмов.
Например, чтобы проверить личность отправителя, сообщение шифруется с использованием собственного закрытого ключа отправителя. Следовательно, сообщение можно расшифровать только с помощью открытого ключа конкретного отправителя. Обратите внимание, что механизмы шифрования и дешифрования автоматизированы и не требуют ручного вмешательства.
Вопреки распространенному мнению, асимметричное шифрование не используется для шифрования всего сеанса SSH. Вместо этого он используется в алгоритмах обмена ключами для симметричного шифрования. Прежде чем инициировать безопасное соединение, обе стороны генерируют временную пару открытого и закрытого ключей и делятся своими личными ключами для создания общего секретного ключа.
После установления безопасной симметричной связи сервер использует открытый ключ клиента для генерации запроса и отправляет его клиенту для аутентификации. Если клиент может успешно расшифровать сообщение, это означает, что оно содержит закрытый ключ, необходимый для подключения, и начинается сеанс SSH.
Одностороннее хеширование — это еще один метод шифрования, используемый в соединениях Secure Shell. Односторонние хэш-функции отличаются от двух вышеупомянутых форм шифрования тем, что их невозможно расшифровать. Односторонние хэш-функции генерируют уникальное значение фиксированной длины для каждого входа, которое не раскрывает информацию, которую можно использовать. Это делает их практически невозможными повернуть вспять.
Генерировать криптографический хеш на основе заданных входных данных легко, но генерировать входные данные на основе хеша невозможно. Это означает, что если клиент имеет правильные входные данные, он может сгенерировать криптографический хэш и проверить правильность введенных данных, сравнив его значение.
SSH использует хеши для проверки подлинности информации. Это достигается с помощью HMAC или кодов аутентификации сообщений на основе хэша. Это гарантирует, что полученные команды не были каким-либо образом подделаны.
При выборе алгоритма симметричного шифрования необходимо также выбрать соответствующий алгоритм проверки информации. Он работает аналогично выбору пароля, как описано в разделе «Симметричное шифрование».
Каждое передаваемое сообщение должно содержать MAC, который рассчитывается на основе симметричного ключа, порядкового номера пакета и содержимого сообщения. Он отправляется как конец пакета связи, вне симметрично зашифрованных данных.
SSH работает, используя модель клиент-сервер, аутентифицируя две удаленные системы и шифруя данные, передаваемые между ними.
По умолчанию SSH существовать TCP[1] порт 22 беги дальше(Хотя это можно попроситьИзменять SSH порт[2])。Хозяин(сервер)существоватьпорт 22 (или любой другой SSH Назначенный порт) для прослушивания входящих соединений. Он открывает правильный путем аутентификации для клиента и существует, когда аутентификация прошла успешно. shell среду для организации защищенных соединений.
Клиент должен начать с сервера TCP пожать друг другу руки, чтобы начать SSH соединять, обеспечивать безопасную симметрию соединять, проверять, что идентификатор, показанный сервером, соответствует предыдущей записи (обычно запись существует RSA файл хранилища ключей) и предоставить учетные данные пользователя, необходимые для аутентификации соединения.
Установление соединения состоит из двух этапов: во-первых, две системы должны согласовать стандарты шифрования для защиты будущих коммуникаций, во-вторых, пользователь должен пройти аутентификацию; Если сертификаты совпадают, пользователь может получить доступ по SSH.
Когда клиент пытается пройти TCP исерверсоединятьчас,Сервер отобразит поддерживаемые протоколы шифрования и соответствующие версии. Если есть аналогичные совпадающие пары по протоколу и версии клиентсуществовать,достигнет соглашения,И начнем с принятого соглашения о подключении. сервер также использует асимметричные открытые ключи,клиент может использоваться для проверки подлинности хоста.
После установления обе стороны используют то, что называется Алгоритм обмена ключами Диффи-Хеллмана[3]создать симметричный ключ。Благодаря этому алгоритму,И клиент, и сервер могут получить общий ключ шифрования.,Этот ключ будет использоваться на протяжении всего сеанса связи.
Вот как алгоритм существования работает на самом базовом уровне:
Теперь, когда сеанс существования безопасного симметричного шифрования установлен, пользователь должен пройти аутентификацию.
Последним этапом перед тем, как пользователю будет предоставлен SSH-доступ к серверу, является проверка его/ее учетных данных. Большинство пользователей SSH используют для этой цели пароли. Пользователю необходимо ввести имя пользователя и пароль. Эти учетные данные безопасно проходят через симметрично зашифрованный туннель и, следовательно, не могут быть получены третьими лицами.
Хотя пароль был изменен,Но использовать пароли в условиях безопасности существования все же не рекомендуется. Это связано с тем, что многие боты могут просто перебрать простые пароли и пароли по умолчанию.,чтобы получить доступ к вашей учетной записи shell права доступа. Рекомендуется использовать Пара ключей SSH[4]。
Это набор асимметричных ключей для Подтверждения личности пользователя без ввода пароля.
Пока от Подтвердите личность пользователя,Мы можем успешно войти на удаленный сервер,Весело играли.
[1]
TCP: https://www.hostinger.com/tutorials/tcp-protocol
[2]
Изменять SSH порт: https://www.hostinger.com/tutorials/how-to-change-ssh-port-vps
[3]
Diffie-Hellman Алгоритм обмена ключами: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
[4]
SSH Ключевая пара: https://www.hostinger.com/tutorials/ssh/how-to-set-up-ssh-keys