SSH — это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.
Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.
Содержание статьи
- Что такое SSH?
- Как подключиться по SSH
- Выводы
Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.
Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.
Как подключиться по SSH
Для подключения по SSH нам необходимо знать такие данные:
- ip адрес сервера, к которому мы собираемся подключится;
- порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
- имя и пароль пользователя на удаленном сервере.
Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.
1. Подключение через SSH в Linux
В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:
$ ssh имя_пользователя@айпи_адрес
Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:
$ ssh имя_пользователя@айпи_адрес -p порт
Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:
ssh sergiy@192.168.1.2
Или, с нестандартным портом:
ssh sergiy@192.168.1.2 -p 2223
Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:
Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:
Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:
Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:
Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:
sudo ufw allow 22/tcp
А в CentOS/Fedora:
firewall-cmd --permanent --zone=public --add-port=22/tcp
Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.
Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.
2. Подключение через SSH в Windows
Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:
Затем выберите Управление дополнительными компонентами:
Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Установить:
Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.
После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:
Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:
ssh имя_пользователя@айпи_адрес -p порт
Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:
ssh pi@192.168.1.5
Утилита предложит добавить устройство в список известных:
Затем предложит ввести пароль:
Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.
Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.
Выводы
В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
В этом уроке мы научимся подключаться к терминалу Ubuntu через протокол SSH с помощью программы PuTTY на Windows. Для начала давайте разберемся, что такое SSH и зачем нам нужен PuTTY для подключения по SSH к серверам.
⇓ Запись видеоурока во ВКонтакте ⇓
⇓ Запись видеоурока на RuTuBe ⇓
⇓ Запись видеоурока на YouTuBe ⇓
SSH (Secure Shell – Безопасная оболочка) – протокол позволяющий производить удаленное управление операционной системой и осуществлять передачу данных, таких как файлы, аудио и видео потоки. Преимущества данного протокола в том, что он шифрует весь передаваемый трафик, включая пароли.
PuTTY – программа, позволяющая подключаться к системам через протоколы удаленного доступа, такие как SSH, Telnet и другие. Однако, судя из нашей задачи мы будем её использовать для работы именно с через протокол SSH.
Установка и настройка сервера SSH
В процессе установки операционной системы мы указывали, что нам необходимо установить SSH сервер. Если вы этого не сделали, то запустите авторизуйтесь в консоли и запустите команду:
sudo apt install openssh-server
Как вы видите, система выдает нам сообщение, что сервер openssh уже установлен в системе.
Вообще, что это за команда и каков синтаксис построения команд в Linux я расскажу более подробно в следующем видео.
Установка и работа в программе PuTTY
Скачиваем программу PuTTY с официального сайта https://putty.org.ru \ Скачать \ Обычная версия: putty-0.73-ru-17.zip \ Разархивируем и устанавливаем.
У меня она уже установлена, поэтому я её запускаю и попадаю в основной раздел, с которым мы будем работать, это раздел Session (сессии), т.е. подключения к удаленным системам.
У вас здесь будет только пункт Default Settings (Настройки по умолчанию) \ Вводим ip адрес нашего сервера, 192.168.88.50 \ Port: 22 \ Connect type: SSH \ Сразу сохраним параметры подключения к данному серверу, чтобы не вводить их каждый раз \ Save sessions \ Ubunbu-srv \ Save. Теперь подключение с данным именем появилось у нас в списке сохраненных сеансов.
Если мы выберем профиль сеанса и нажмем на кнопку Load, то загрузим его настройки. Это очень удобно, если вы администрируете несколько серверов, все их настройки можно добавить в разные профили сессий.
Если вы забыли адрес сервера, то в консоли вводим команду:
ip ad
и видим настройки сетевых подключений присутствующих в системе
Нажимаем Open, чтобы попытаться подключиться к нашему серверу через протокол защищенной оболочки SSH \ Вводим логин: it-skills \ Вводим пароль: ***** \
После успешного подключения мы получаем сообщение добро пожаловать в Ubuntu 22.04.2, ссылки на полезные ресурсы, дата и время на сервере, сводную информацию о загруженности сервера.
Строка it-skills@ubuntu-srv: говорит нам о том, что мы подключены к серверу ubuntu-srv под пользователем it-skills
Давайте перейдем в корневой каталог и отобразим его содержимое:
cd /
ls -la
Опять же, все эти команды мы будем изучать в следующих уроках, но если вкратце, то команда cd сменяет каталог, / — это корневой каталог, т.е. самый верхний, как например диск С в системах Windows, вот только в Linux корневой каталог один, независимо от количества жестких дисков в системе, а в Windows корневой каталог есть в каждом диске, т.е. папка верхнего уровня.
Команда ls -la выводит содержимое каталога, в котором мы сейчас находимся, т.е. содержимое корневого каталога.
Достоинства использования PuTTY
Давайте разберемся, а в чем еще, помимо удаленного подключения к консоли сервера, удобство работы через программу PuTTY? Ведь в нашем случае, у нас сервер установлен в качестве виртуального сервера, и мы можем им управлять через VMWare!
А удобство в следующем:
— удаленное подключение – как минимум мы поняли, как подключаться к серверу через SSH, хотя, сам по себе именно данный способ не доработан, так как с точки зрения безопасности тут нужно еще запретить прямое подключение из-под пользователя root, разрешить подключение только по сертификату и сменить порт по умолчанию. Мы этого делать не будем, так как в рамках нашего домашнего полигона в этом необходимости нет, однако, если вы выпускаете сервер в мир, т.е. он становится доступен через сеть интернет, то данные настройки должны быть выполнены обязательно.
— наличие скрула — если мы перейдем в каталог etc и просмотрим его содержимое то увидим большое количество файлов и папок
cd /etc/
ll
Через терминал на сервере мы не можем увидеть все содержимое, так как нам доступен только конец вывода на экран, а вверх мы не модем пролистать.
Если мы сделаем тоже самое через программу PuTTY, то мышкой можем пролистать весь вывод, так как здесь есть скрулл.
— копирование и вставка – через программу PuTTY очень удобно копировать и вставлять нужное содержимое. К примеру, мы можем легко выделить весь вывод, скопировать его Ctrl+C и вставить в какой-нибудь документ (Выполнить \ notepad \ Вставить). Как правило, это полезно, когда вам необходимо отправить какую-нибудь информацию техническому специалисту, если у вас появляются какие-то ошибки на сервере. Ну или вы пишите скрипт в одну строку и добавляете в него какие-то правки, довели его до правильной работы, потом просто выделили, скопировали и вставили себе в документ или отправили кому-нибудь. Т.е. не нужно заново его вводить вручную.
Так же, если вы столкнулись с каким-нибудь текстом написанном на английском языке, вы можете легко его скопировать, вставить в переводчик и понять, что от вас требуется.
Так же полезен и обратный процесс, это вставка, т.е. допустим вы подключились к какому-то серверу и у вас есть уже наработанный список команд, позволяющий легко и быстро настроить сервер. Чтобы их не вводить вручную, мы просто копируем из нужного документа, и нажатием на правую кнопку мыши ПКМ содержимое вставляется в терминал
К примеру, эта же команда sudo apt install openssh-server по установке сервера ssh.
Вообще это очень полезно при изучении различных инструкций, так как вы можете просто через Copy Paste быстро настроить нужную службу.
— размер шрифта – допустим мне так же удобно менять размер шрифта.
К примеру в виртуальной машине он такой, однако когда я подключался к своему рабочему компьютеру с ноутбука, а у меня тут расширение намного больше чем на ноутбуке, то этот шрифт становится еще меньше и приходится вглядываться в то, что написано в терминале.
Однако, через PuTTY мы можем изменить размер шрифта, цвет и фон шрифта на тот, который вам удобнее (ПКМ по окну программы \ Change Settings «Изменить настройки» \ Windows \ Appearance \ Font settings \ Change \ 16 \ ОК \ Apply )
Еще видел, что некоторые любят менять фон на белый, а текст делать черным. Это дело конечно каждого, но лично я бы не привыкал к такому формату, так как лучше все же работать в стандартном режиме.
Время на прочтение6 мин
Количество просмотров29K
В прошлой статье я обещал рассмотреть механизм удаленного подключения с Windows на серверы под управлением *nix, и наоборот при помощи PowerShell. Обещанного обычно ждут три года, но я успел чуть раньше. Что ж, если хочется с верного макбука управлять гетерогенной инфраструктурой, или наоборот ― с Surface Pro рулить Linux-серверами без всяких putty, ― прошу под кат.
Microsoft Loves Linux
Еще в 2015 году Microsoft торжественно объявила о запуске программы «Microsoft Linux». Сюда вошла как банальная поддержка гостевых *nix-like OS на Hyper-V, так и встроенная в Windows 10 Ubuntu и возможность запуска в Docker продуктов Microsoft, таких как SQL Server.
Компания также опубликовала исходный код PowerShell, что позволило запускать «Ракушку Мощи» не только на Windows. Из-под одноименного аккаунта на Github, помимо исходного кода, выложены и бинарники под большинство современных систем (лицензия MIT).
Это позволяет настроить удаленное управление с помощью единого инструмента ― PowerShell. Помимо подключения к консоли компьютера, можно запускать отдельные команды, в том числе и на нескольких серверах одновременно. Довольно удобно для автоматизации задач администрирования, таких как массовое изменение настроек, инвентаризация, сбор логов.
Порой удобно совмещать традиционные консольные команды со вставками PowerShell:
cat /etc/passwd | ConvertFrom-Csv -Delimiter ':' -Header Name,Passwd,UID,GID,Description,Home,Shell | Sort-Object Name | Format-Table
Для подключения к Windows-машинам при помощи PowerShell используется протокол WS-Man. Для GNU\Linux привычен SSH. Так как сегодня становятся универсальными оба протокола, разберем их подробнее.
PowerShell 6.0 под Windows и *nix, пока еще находится в бете. Поэтому не рекомендую без хорошего тестирования применять на боевых серверах описанное ниже.
Магомед не идет к горе
Когда технология удаленного доступа при помощи PowerShell только набирала обороты, единственным универсальным способом подключения к разным системам был протокол WS-Man. Для тестового стенда я взял Windows Server 2016 и Centos 7, для которых и буду настраивать возможность удаленного подключения и выполнения команд при помощи этого протокола.
Для начала установим на Centos свежий PowerShell:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo
yum install -y powershell
pwsh
После установки появилась возможность запускать привычные Windows-администратору командлеты. Например, посмотрим версию PS и получим список запущенных процессов командлетами $PSVersionTable и Get-Process:
Работаем в консоли PowerShell на CentOS.
Чтобы подключаться к Linux-машине с консоли Windows, нам понадобится установить и настроить:
- OMI (Open Management Infrastructure) ― адаптация WMI, которую также можно использовать для управления компьютерами с ОС, отличными от Windows;
- PSRP (PowerShell Remoting Protocol) ― библиотека, необходимая для удаленного подключения PowerShell.
Подробно с работой и эволюцией OMI и PSRP можно ознакомиться в отличном материале от Matt Wrock, я же просто установлю OMI командой:
yum install omi
Далее нужно настроить порты и аутентификацию в конфигурационном файле /etc/opt/omi/conf/omiserver.conf, после чего перезапустить сервер командой:
/opt/omi/bin/service_control restart
Для упрощения эксперимента я не буду настраивать ни NTLM-аутентификацию, ни Kerberos. Еще и шифрование отключу ― разумеется, в боевой среде делать этого не стоит. Для включения текстовой аутентификации и шифрования на стороне Windows в работе winrm достаточно выполнить следующие команды:
winrm set winrm/config/client/auth @{Basic="true"}
winrm set winrm/config/client @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
После настройки можно проверить работу OMI из консоли Windows:
winrm enumerate http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/OMI_Identify?__cimnamespace=root/omi -r:http://server:5985 -auth:Basic -u:root -p:"password" -skipcncheck -skipcacheck -encoding:utf-8 -unencrypted
Подключаемся к CentOS из cmd.
Теперь проверим работу обратным подключением ― из Linux к Windows:
/opt/omi/bin/omicli ei root/cimv2 Win32_Environment --auth Basic --hostname server -u username -p password --port 5985
… а затем с CentOS подключаемся к Windows.
После того, как WMI\OMI заработал, нужно установить и настроить PSRP. К сожалению и вопреки инструкции, бинарник отсутствует. Библиотеку пришлось компилировать, долго и нудно исправляя возникающие ошибки зависимостей:
yum groupinstall 'Development Tools'
yum install openssl-devel pam-devel
git clone --recursive [https://github.com/PowerShell/psl-omi-provider.git](https://github.com/PowerShell/psl-omi-provider.git)
cd psl-omi-provider/
make release
rpm -ihv target/Linux_ULINUX_1.0_x64_64_Release/psrp-1.4.1-0.universal.x64.rpm
Теперь мы сможем подключаться с Windows на Linux и наоборот при помощи PowerShell. Начнем с Windows на Linux:
$cred = Get-Credential
#пропустим проверку сертификата для нашей тестовой лаборатории
$o = New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck
#выполнение команды:
Invoke-Command -ComputerName server -ScriptBlock { Get-Process } -Authentication Basic -SessionOption $o -Credential $cred -UseSSL | Select-Object -First 5
#подключение к консоли
Enter-PSSession -ComputerName 'server' -Credential $cred -Authentication basic -UseSSL -SessionOption $o
С Windows на Linux.
Аналогичным образом можно провести и обратное подключение.
Invoke-Command можно «натравить» на список компьютеров, и с рабочей станции Windows создать пользователя на всех серверах Linux командой вида:
Invoke-Command -ComputerName server1,server2,server3 -ScriptBlock { adduser admin;echo admin:password | chpasswd
}
Надо сказать, что способ не самый удобный и эффективный. Минусов добавляет компиляция библиотек, разнообразные баги ― например, на момент написания статьи PSRP не позволял нормально подключиться из Linux в Windows.
Да и сами разработчики рекомендуют не плясать вокруг WS-Man, а обратиться к проверенному способу ― SSH. Что ж, попробуем и его.
Гора идет к Магомету
На этот раз машина с Windows получит чуть больше специфической подготовки ― нужно установить свежий PowerShell и OpenSSH.
После можно проверить синтаксис командлета New-PSSession. Если все произошло как надо, то командлет, помимо привычного параметра ComputerName, будет поддерживать и HostName.
PowerShell 6.0.0-beta.9 и обновленный синтаксис командлета.
Установка OpenSSH описана в отдельной инструкции.
Но под спойлером вы найдете все основные моменты.
Качаем последний релиз или используем пакет из репозитория Chocolatey. Все это разархивируем в \Program Files\OpenSSH.
В консоли с правами администратора переходим в папку с разархивированным содержимым и запускаем установку командой:
powershell -ExecutionPolicy Bypass -File install-sshd.ps1
Теперь генерируем ключи:
.\ssh-keygen.exe -A
.\FixHostFilePermissions.ps1 -Confirm:$false
В тестовой среде мы будем использовать парольную аутентификацию, поэтому стоит убедиться что она включена в файле sshd_config:
```bash
PasswordAuthentication yes
```
Если вы также хотите автоматически запускать PowerShell при подключении по SSH, то в параметре subsystem нужно прописать путь к желаемой версии PS:
Subsystem powershell C:/Program Files (x86)/PowerShell/6.0.0-beta.9/pwsh.exe -sshs -NoLogo -NoProfile
Для работы клиента SSH нужно добавить директорию в %PATH% любым удобным способом. Например, таким:
setx path "%path%;C:\Program Files\OpenSSH"
Остается только настроить и запустить службы:
Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic
net start sshd
После установки уже можно наслаждаться подключением к серверу Windows по ssh.
C Windows через Putty на Linux, с Linux обратно на Windows по SSH.
На достигнутом останавливаться не будем и перейдем к настройке Linux. При настройке сервера SSH по умолчанию достаточно прописать PowerShell в Subsystem:
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Теперь проверим подключение через командлет New-PSSession и Invoke-Command.
Сначала Windows:
Работаем из PowerShell с Linux-сервером.
Теперь подключимся из Linux к Windows:
Работаем из PowerShell с Windows-сервером.
В отличие от WS-Man, SSH настраивается намного проще и работает стабильнее. Да и беспарольное подключение по ключам настраивать привычнее.
В хозяйстве пригодится
С однозначным «советом потребителю» все опять сложно: SSH проще в настройке и стабильнее, но WS-Man использует API и позволяет применять инструменты вроде JEA. На боевых серверах использовать WS-Man я бы не стал однозначно, а вот реализация OpenSSH в Windows как сервера, так и клиента мне понравилась. Для самопальной автоматизации вполне подойдет даже без PowerShell.
В любом случае, границы между Linux и Windows хоть и медленно, но начинают стираться, что безусловно радует.
This tutorial is going to show you 3 ways to log into Linux server on Windows via SSH.
What’s SSH?
SSH stands for Secure Shell, which was invented in 1995 to replace the insecure Telnet (Telecommunication Network). It’s now the primary way for system administrators to securely log into remote Linux servers over the public Internet. Although it looks and acts the same as Telnet, all communications over the SSH protocol is encrypted to prevent packet sniffing.
If you are running a Linux or Mac computer, SSH client is installed by default. You can open up a terminal window and run the ssh
command like below to connect to a remote Linux server.
ssh [email protected]
Now let’s discuss how to use SSH on Windows.
Method 1: Windows 10’s Built-in SSH Client
The Microsoft PowerShell team decided to port OpenSSH (both the client and the server) to Windows in 2015. It finally arrived in Windows 10’s Fall Creator Update in 2017 and is enabled by default in the April 2018 Update.
To use the OpenSSH client on Windows 10, simply open a PowerShell window or a command prompt window and run the ssh
command. For example, if I want to connect to my Ubuntu desktop in the LAN, I would run
ssh [email protected]
linuxbabe
is the username on my Ubuntu desktop and 192.168.0.101
is the private IP address for my Ubuntu desktop. The first time you connect to a Linux computer, you will be prompted to accept the host key. Then enter your password to login. After login, you can run Linux commands to do administrative tasks.
Note that if you want to paste a password into the PowerShell window, you need to right-click the mouse and press Enter.
To log out from the Linux box, run the exit
command or press Ctrl+D
.
The default font size in PowerShell Window is very small. To change it, right-click the titlebar and select properties
, then you can change the font size, and the background color.
Method 2: Use SSH in Windows Subsystem for Linux
Windows Subsystem for Linux (WSL) enables you to run native Linux command-line tools directly on Windows 10. If you are a system administrator, WSL is probably an overkill for just using SSH because it would install and run a Linux distro (without graphical user interface) on your Windows 10 desktop. WSL is created for web developers or those who need to work on open-source projects. You can use not only SSH but also other Linux command line tools (Bash, sed, awk, etc).
Open the Microsoft Store and enter WSL
in the search box. Select Run Linux on Windows
and install a Linux distro of your choice.
For example, I choose Ubuntu and click the Get
button to install it.
Once your Linux distro is installed, open the Control Panel
and select Programs
-> Turn Windows features on or off
. Tick on the checkbox of Windows Subsystem for Linux to enable this feature. (You may need to reboot your Windows PC for this change to take effect.)
Next, you can launch the Linux distro from the start menu by search the distro’s name. The first time you launch it, you need to create a user and set a password.
After that, you can use the ssh command like below to connect to a Linux server or PC that runs a SSH server.
ssh [email protected]
Method 3: Use Putty
Putty is a well-known and the most popular SSH client on Windows before the arrival of Windows OpenSSH client and Windows Subsystem for Linux. To use SSH with Putty, you need to download the Putty program from the official website and install it.
Launch Putty from the Start menu. Then enter the IP address or hostname of the Linux box and click the Open
button to connect to it.
Accept the host key and you will be prompted to enter the username and password.
Please note that when you type in your password, the cursor doesn’t move, but it’s actually accepting your password. To paste text into Putty, first press Ctrl+C
to copy the text, then go to Putty window and press the right button of your mouse.
How to Set Up SSH Key on Windows 10 (Optional)
There’re mainly two ways of authenticating user login with OpenSSH server:
- password authentication
- public-key authentication: also known as passwordless SSH login because you don’t need to enter your password.
To set up public-key authentication on Windows 10, follow the instructions below.
Open Windows Powershell, and run the following command to generate SSH keypair.
ssh-keygen -t rsa -b 4096
Where:
-t
stands fortype
. The above command generates an RSA type keypair. RSA is the default type.-b
stands forbits
. By default, the key is 3072 bits long. We use a 4096 bits key for stronger security.
When asked which file to save the key, you can simply press Enter
to use the default file. Next, you can enter a passphrase to encrypt the private key, but you will need to enter this passphrase every time when you log into the Linux server. If you don’t want it, you can press Enter, so it will have no passphrase.
- The private key (your identification) will be saved in the .ssh/id_rsa file under your user directory.
- The public key will be saved in the .ssh/id_rsa.pub file.
Now we need to upload the public key to remote Linux server. You can display the public key in the Powershell with the following command.
cat .ssh/id_rsa.pub
Then log in to your server via password authentication, and run the following command to create a .ssh
directory under your home directory.
sudo mkdir ~/.ssh
Create the authorized_hosts file
sudo nano ~/.ssh/authorized_keys
Copy your SSH public key and paste it to this file. Save and close the file. To save a file in Nano text editor, press Ctrl+O
, then press Enter
to confirm. To close a file, press Ctrl+X
.
Next, change the permission of this file.
sudo chmod 600 ~/.ssh/authorized_keys
Log out of your Linux server.
exit
Now you can SSH into your server without entering a password.
Next Step
I hope this article helped you use SSH on Windows. You might also want to protect SSH service from hacking, I recommend setting up public-key authentication or two-factor authentication.
- 2 Simple Steps to Set up Passwordless SSH Login on Ubuntu
- Set Up SSH Two-Factor Authentication (2FA) on Ubuntu Server
Also, you can enable automatic security updates on your Linux server to patch vulnerabilities.
- Set Up Automatic Security Update (Unattended Upgrades) on Ubuntu
If you want FTP access to the Ubuntu server, you can set up pure-FTPd server.
- How to Set Up a Secure FTP Server with Pure-FTPd on Ubuntu
As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks. Take care 🙂
Что такое SSH
SSH — также известный как “Secure Socket Shell”, представляет собой протокол, который предоставляет пользователям безопасный способ доступа к удаленном серверу Linux. “SSH” используется всеми, кому необходимо безопасно удаленно управлять компьютером, а также системными и сетевыми администраторами. “Secure Shell” (SSH) обеспечивает аутентификацию с открытым ключом и аутентификацию по паролю, а также зашифрованную передачу данных между двумя компьютерами, подключенными через открытую сеть Интернет. Программное обеспечение состоит из сервера SSH, который стоит на VDS и клиента который стоит на локальном компьютере пользователя. Программное обеспечение обеспечивает весь нужный функционал работы с Linux VDS сервером начиная от удаленного доступа, передачи файлов и заканчивая перенаправлением tсp портов. Является де факто стандратом удаленного взаимодействия с Linux серверами. Серверная и клиентская часть SSH всегда входят в забовую установку Linux. Остается только подключиться удаленно.
Подключение к серверу по SSH из Windows
Один из чаще используемых способов, является подключение через PuTTY.
Что такое PuTTY
PuTTY — это SSH-клиент, доступный для Windows и доступный на компьютерах Windows с поддержкой MCECS. Кроме того, он находится в свободном доступе в Интернете и его можете скачать для использования на вашем персональном компьютере с: http://www.chiark.greenend.org.uk/~sgtatham/putty/
Запустите PuTTY и появится окно, т.е. сама программа. Это выглядит как на скриншоте ниже.
Чтобы подключиться на сервер:
1. Введите имя хоста машины, к которой вы хотите подключиться.
2. Нажмите кнопку Open.
3. Если вы впервые пытаетесь подключиться к этому хосту, PuTTY предупредит вас, что не может гарантировать, что компьютер, к которому вы подключаетесь, является тем, за кого он себя выдает. Нажмите «Да», чтобы сохранить ключ в кеше PuTTY.
4. Введите логин и пароль. При заказе сервера у нас, вы получаете доступ к пользователю root. Соответственно вы должны указать логин root и его пароль который находиться в разделе “Инструкция” в личном кабинете..
Важно!!! Не бойтесь, при вводе пароля, звездочки или точки обозначающие пароль, не видны!
Подключение к серверу по SSH протоколу из Windows, Linux и macOS с встроенным SSH клиентом
Чтобы подключиться из Windows, Linux или macOS мы должны открыть:
1. CMD (командую строку в Windows)
2. Или терминал в Linux ОС и macOS.
Дальше вводим следующую команду, принимаем условия, пишем “yes” и нажимаем Enter.
ssh [email protected]
По умолчанию SSH порт всегда 22. Он прописан сразу в терминале, CMD также определяет его сам.
После того как мы написали «yes», нажали Enter и продолжили, указываем пароль, заново нажимаем на Enter и входим на сервер.
Подключение к серверу по SSH протоколу из Windows, Linux и macOS с Termius
Что такое Termius
Termius — отличный бесплатный SSH-клиент, с помощью которого вы можете легко управлять всеми своими серверами. Вы подключаетесь прямо к серверу обычным способом (ssh root@ipaddress) или можете добавить их в “Termius”, чтобы запомнить и легко подключаться к каждому из них в будущем всего одним щелчком мыши.
Его преимущество – доступность на всех системах: Windows, macOS, Linux, iOS и Android, и для большинства из них есть бесплатная версия. Платная версия тоже довольно хороша, но не обязательна к покупке. Для регулярного пользования бесплатная версия отлично подойдёт.
Шаг один. Мы должны скачать и установить “Termius”.
Скачать можете по ссылке: https://www.termius.com/download
После того как мы скачали и запустили “Termius” он будет автоматический установлен.
Теперь вам нужно создать учетную запись, так как это требуется. Указываем данные и нажимаем на “Singup with email”
После регистрации в начальной странице указываем IP, затем нажимаем на кнопку “Create host”
После перехода мы указываем:
- Название сервера, чтобы было легко распознать о какой услуге идет речь — если у вас их несколько.
- IP адрес сервера.
- Порт — по умолчанию 22.
- Логин — в вашем случае – «root».
- Пароль.
- Нажимаем на галочку и сохраняем.
После этого щелкаем два раза на конфиг, который сохранили, затем нажимаем «Add and continue»
Мы подключились на сервер и можем начать работать.
Большой плюс данного SSH клиента – встроенный SFTP клиент. Вам не нужно будет в таком случае пользоваться WinSCP, FileZilla или другим ПО.