Подключение к серверу по SSH Windows CMD.

В Windows 10 и 11 присутствует встроенный SSH клиент, и мы можем использовать его для подключения к серверу через командную строку CMD без использования сторонних терминалов, вроде PuTTY. Для этого в командной строке нужно выполнить стандартную команду:
ssh username@host

где username — имя пользователя на сервере, к которому вы хотите подключиться,
а host — IP адрес или доменное имя сервера
если на сервере для SSH настроен нестандартный порт, то к команде добавляется
-p 1234 — где цифры, номер порта

Откроем командную строку CMD. Для этого в строку поиска вписываем cmd и жмем на появившуюся иконку Командная строка.

Если вы хотите подключиться к новому серверу, который приобрели у провайдера, тот должен был предоставить вам следующие данные: IP адрес хоста (например, 123.123.123.123), имя пользователя (обычно root), пароль. Так как на новом сервере порт SSH дефолтный, команда для подключения будет выглядеть так:
ssh root@123.123.123.123

При первом подключении к хосту, так как его еще нет в памяти нашего компьютера, вылезет соответствующее предупреждение The authenticity of host ‘123.123.123.123 (123.123.123.123)’ can’t be established. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Так как мы уверены, что подключаемся к правильному хосту, пишем yes и жмем Enter чтобы продолжить.
Отлично, мы зашли:

Давайте теперь настроем доступ по ключу. Сначала нам нужно создать SSH ключ. Откроем новое окно CMD, в нем выполним:
ssh-keygen -t ed25519

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

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

Ключевая пара сгенерирована и сохранена в папку, где по умолчанию лежат SSH ключи Windows, в C:\Users\waky.ssh\id_ed25519 (приватный ключ) и C:\Users\waky.ssh\id_ed25519.pub (публичный ключ) соответственно. Обратите внимание, что в терминале пути до файлов указаны вперемешку с обратными и прямыми слешами. Но в Windows в пути используется только обратный слеш.

Обратите внимание, что в терминале пути до файлов указаны вперемешку с обратными и прямыми слешами. Но в Windows в пути используется только обратный слеш.
В терминале пишем команду
type "путь_до_публичного_ключа"
не забыв поменять прямые слеш на обратные.

Команда выведет публичный ключ на экран, выделяем его весь, Ctrl+C, чтобы скопировать и возвращаемся к первому окну терминала, где мы вошли на сервер по паролю.
Используем текстовый редактор vi, чтобы добавить наш ключ на сервер:

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

Сохраняем изменения и закрываем файл. Если сервер новый, то файл авторизованных ключей, а с ним и вся директория .ssh может отсутствовать, тогда можно исполнить следующую комбинацию команд. Они создадут директорию и запишут ключ в нужный файл:

mkdir ~/.ssh && echo 'ssh-ed25519 ЗДесЬДолЖеНбЫтьВАшПубЛИЧНыЙКЛюЧ' >> ~/.ssh/authorized_keys && chmod -R 600 ~/.ssh

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

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

Теперь можно отключить на хосте доступ по паролю, чтобы защитить его от брутфорса.