3: Выполнение кода на удаленном сервере
Плагин Remote-SSH настроен, подключение создано. Давайте попробуем запустить код на удаленной машине. Откройте окно терминала, выбрав Terminal в панели навигации в верхней части интерфейса Visual Studio и кликнув New Terminal. Вы также можете открыть терминал при помощи клавиш CTRL+Shift+`. Этот терминал откроется на вашем удаленном сервере, а не на локальном компьютере.
Когда терминал откроется, введите следующую команду, чтобы запросить IP-адрес и убедиться, что вы подключены к удаленному серверу:
Вы увидите следующий вывод в своем терминале:
Чтобы убедиться, что вы можете запускать код удаленно, создайте новый файл Python по имени hello.py в вашем редакторе. После подключения к удаленному серверу все файлы, созданные с помощью Visual Studio Code, будут сохранены на удаленном сервере (не на вашем локальном компьютере).
Добавьте следующие строки в файл:
Чтобы запустить эту программу на своем сервере, откройте терминал в Visual Studio Code из меню или с помощью клавиш CTRL+Shift+`. Этот сеанс терминала подключен к вашему удаленному серверу. Введите следующую команду, чтобы запустить вашу программу hello.py:
Вывод вашей программы будет отображаться в терминале.
Вы также можете запустить файл из контекстного меню Debug, выбрав при этом опцию Run without Debugging.
Примечание: Если вы используете какие-либо расширения для разработки в Visual Studio Code (например, расширение Python), вам придется переустановить эти расширения на своем удаленном сервере с помощью Extension Marketplace. Если вы ранее установили эти плагины в Visual Studio Code, при повторном поиске их в Marketplace появится сообщение «Install on SSH: hostname»
Всегда обращайте внимание на то, в каком контексте разработки вы находитесь, потому что именно сюда Visual Studio Code установит ваши плагины и создаст файлы. Если вы попытаетесь запустить код без предустановленных плагинов, в правом нижнем углу экрана появится диалоговое окно с сообщением об ошибке, которое предложит установить плагины на удаленном сервере
После их установки, вероятно, потребуется перезагрузить Visual Studio Code. После перезагрузки он продолжит работу с удаленным сервером без необходимости повторного подключения вручную.
Каковы причины возникновения
Ошибка 868 при подключении Интернета Билайн — какими могут быть причины возникновения подобной ошибки? Несмотря на то, что данная проблема может возникнуть у абонентов разных провайдеров, сталкивается с ней чаще всего именно пользователи представленного провайдера. Это никак не зависит от версии вашей операционной системы, например Windows 7 или Windows 10, а также прочих технических характеристик. Ошибка может возникнуть в случае прямого подключения, то есть через кабель в соответствующий компьютерный порт.
Данная ошибка возникает в тех случаях, когда портативное устройство по каким-то причинам не может самостоятельно определить ip-адрес vpn-сервера . VPN-сервер — это система, что осуществляет прием подключений, которые совершаются при использовании Интернета. Данный сервер применяется для того, чтобы центральный офис мог посмотреть информацию по филиалам. В случае если используется домашний интернет, в роли центрального офиса выступает именно провайдер, а в качестве филиала клиент. Поэтому, если клиент не знает IP адрес провайдера, он никак не может к нему обратиться. Ошибка подключения 868 Билайн относится ко всем провайдерам, который применяют соединение по типу VPN.
2: Настройка плагина Remote-SSH и подключение к серверу
Теперь, когда у вас установлен плагин, вы можете настроить его для подключения к серверу. Для этого вам понадобится следующая информация:
- IP-адрес сервера или имя хоста.
- Имя пользователя, с помощью которого вы подключитесь.
- Закрытый ключ для аутентификации пользователя.
Вы будете использовать эту информацию для создания конфигурационного файла SSH, с помощью которого Visual Studio Code будет подключаться к серверу по SSH, синхронизировать файлы и выполнятькод от вашего имени. Создать эту конфигурацию можно с помощью Visual Studio Code.
После установки Remote-SSH в левом нижнем углу интерфейса Visual Studio Code появится маленький зеленый прямоугольник. Если вы наведете указатель мыши на поле, всплывающее окно подскажет «Open a remote window». Найдите кнопку, которая выглядит как символы > и <, расположенные по диагонали друг от друга.
Нажмите эту кнопку, и вверху появится диалоговое окно. Выберите из списка Remote-SSH: Open Configuration File…
Следующее окно спросит вас, какой файл конфигурации вы хотите открыть. Если вы работаете в Windows, вы увидите два пути: один в вашем личном пользовательском каталоге и второй в месте установки SSH. Вы должны использовать файл в своем пользовательском каталоге при настройке сервера.
Выберите файл, и ваш редактор откроет файл config. Добавьте в него следующий код, чтобы определить соединение с вашим сервером (замените выделенные разделы данными о вашем сервере):
Host my_remote_server
HostName your_server_ip_or_hostname
User 8host
IdentityFile /location/of/your/private/key
Вот как работает этот файл:
- Host: имя вашего хоста. Это поле позволяет использовать короткое имя или аббревиатуру вместо полного IP-адреса или имени хоста при подключении к серверу.
- HostName: фактическое имя хоста сервера, это либо IP-адрес, либо полный домен.
- User: пользователь, с помощью которого вы создадите подключение.
- IdentityFile: путь к вашему закрытому ключу SSH. В системах Mac и Linux он хранится в домашнем каталоге, в скрытом каталоге .ssh. Обычно он называется id_rsa. Если вы работаете в Windows, вы должны были указать место для сохранения этого файла, когда создавали его с помощью putty-gen.
Укажите соответствующие значения в файле и сохраните его.
Visual Studio Code настроен и готов подключиться к вашему серверу. Нажмите зеленую кнопку Open a remote window в нижнем левом углу и выберите Remote-SSH: Connect to Host…
После этого в выпадающем меню появятся все доступные и настроенные серверы. Выберите из этого списка сервер, к которому вы хотите подключиться.
Если вы впервые подключаетесь к этому серверу со своего компьютера, скорее всего, появится диалоговое окно и предложит вам проверить отпечаток ключа SSH.
Это помогает подключиться именно к тому серверу, который вам нужен. Чтобы узнать отпечаток ключа этого сервера, вы можете войти на сервер вручную и выполнить команду:
ssh-keygen -l -f /etc/ssh/ssh_host_key.pub
Если этот отпечаток совпадает с тем, который вы видите в диалоговом окне Visual Studio Code, то вы подключаетесь к правильному серверу. Можно нажать Continue.
При создании нового соединения Visual Studio Code по умолчанию открывает новое окно. Вы увидите окно приветствия. Ваше соединение успешно создано, если вы видите «SSH: your_ip_address_or_hostname» в зеленом поле в нижнем левом углу. Это означает, что Visual Studio Code подключен и взаимодействует с вашим удаленным сервером.
Теперь вы можете запускать команды и код из вашего редактора.
Ошибка инструментария WMI при соединении с сервером отчетов в среде Management Studio
По умолчанию среда Management Studio использует инструментарий управления Windows (WMI) служб Reporting Services, чтобы установить соединение с сервером отчетов. Если поставщик WMI установлен неправильно, при попытке установить соединение с сервером отчетов возникнет следующая ошибка.
Не удается подключиться к <your server name>. Поставщик WMI служб Reporting Services не установлен или не настроен (Microsoft.SqlServer.Management.UI.RSClient)».
Чтобы устранить эту ошибку, необходимо переустановить программное обеспечение. В других случаях в качестве временного решения можно соединиться с сервером отчетов через конечную точку SOAP.
В диалоговом окне Соединение с сервером в среде Management Studio в поле Имя сервера введите URL-адрес сервера отчетов. По умолчанию это https:///reportserver. Или, если используется SQL Server 2008 Express with Advanced Services, это https:///reportserver$sqlexpress.
Чтобы устранить эту ошибку (для последующей установки соединения через поставщика WMI), запустите программу установки, чтобы исправить службы Reporting Services, либо переустановите службы Reporting Services.
Генерация SSH ключей в Linux/MacOS/Windows 10
Чтобы сгенерировать ключи на Linux/MacOS/Windows 10:
- Откройте консоль, терминал (MacOS) или командную строку (cmd.exe) для Windows 10.
- Выполните команду: «ssh-keygen -t rsa -b 2048».
- Укажите название ключа в строке «Enter file in which to save the key».
Внимание! Если не указывать директорию (например, «.ssh/» ), ключи сохранятся в «~./» (для Linux/MacOS) или в «C:Users» (для Windows 10)
- Нажмите «Enter».
- Далее задайте пароль для ключа или оставьте поле пустым и нажмите «Enter», если хотите создать ключ без пароля.
- Подтвердите пароль или оставьте поле пустым и нажмите «Enter» для сохранения ключа без пароля.
- Ключ создан в директории по умолчанию или в той, которую вы прописали.
- Публичная часть ключа будет сохранена в файле «<имя_ключа>.pub».
Используйте его для последующего добавления к виртуальной машине. Файл можно открыть в текстовом виде в приложении «Блокнот».
Генерация SSH ключей в Личном кабинете «G-Core Labs Cloud»
Для создания SSH ключа из личного кабинета, следуйте описанным ниже шагам.
- В панели управления «G-Core Labs Cloud» перейдите в раздел «Ключи SSH».
- Нажмите «Сгенерировать ключ».
- Введите название ключа и нажмите «Создать SSH ключ».
Важно! Допускается использование символов только латинского алфавита, нижнего подчеркивания, пробелов и точек. Длина имени должна быть от 3 до 63 символов
- Ключ сгенерируется и отобразится в списке SSH ключей, его открытая часть уже будет храниться в системе, а закрытый ключ будет загружен на устройство в папку по умолчанию.
- Для просмотра закрытого ключа найдите его на устройстве и откройте с помощью приложения «Блокнот».
Измените DNS
Каждому домену в интернете соответствует ip адрес формата x.x.x.x, где x – это цифра от 0 до 255. Информация о таком соответствии хранится в записях DNS сервера. Домашний компьютер получает записи с DNS серверов интернет-провайдера, которые иногда содержат устаревшую информацию, так как обновляются раз в сутки или двое. Измените DNS в свойствах сетевого адаптера на сервера от Гугла (8.8.8.8 и 8.8.4.4), перезапустите TeamSpeak 3 и попробуйте подключиться заново. Покажем, как это сделать на примере Windows 10.
Найдите панель управления через поиск (значок лупы возле кнопки пуск), в панели откройте Центр управления сетями и общим доступом.
Там зайдите в «Изменение параметров адаптера» и откройте свойства того адаптера, через который комп подключен к интернету.
Дважды кликните на ip версии 4, измените DNS на 8.8.8.8 и 8.8.4.4 и нажмите ОК в этом и остальных открытых окнах (это важно!)
Перезапустите ТС 3 и пробуйте подключаться к серверу.
ControlMaster
Если вы подключаетесь к удаленному хосту SSH с использованием других методов аутентификации, кроме аутентификации на основе ключей, например двухфакторной, на основе пароля или ключа SSH с парольной фразой, вам может потребоваться вводить необходимую информацию несколько раз.
Вместо того, чтобы открывать несколько соединений SSH, вы можете использовать опцию (только на клиентах macOS/Linux), чтобы повторно использовать существующее соединение и сократить количество раз, когда вы должны вводить вашу фразу-пароль.
Чтобы использовать эту функцию, добавьте следующее в ваш конфигурационный файл SSH:
Как подключиться по SSH с помощью ключа
Выше мы разобрали простое подключение по паролю, но гораздо безопаснее подключаться, используя ключ. В этом случае нужно вводить пароль от ключа, а не юзера сервера. Возможно даже вообще не вводить никаких паролей, а использовать только файл-ключ, что является очень удобным и относительно безопасным. Но обо всем по порядку.
Генерация (создание) SSH-ключа
Для начала нужно создать SSH-ключ на той машине, с которой будем подключаться к серверу, то есть ключ создается на стороне клиента, для этого не нужно заходить на сервер.
Чтобы создать ключ, нужно ввести команду . В примере мы будем использовать самую распространенную папку для ключей, которая находится в домашней папке пользователя: или ее укороченной версией :
После ввода утилита попросит задать пароль для ключа. Здесь довольно важный момент. Можно вовсе не задавать пароль и просто нажать Enter. В таком случае подключение к серверу будет осуществляться только по ключу и без всякого ввода пароля.
Но в примере мы будем «параноиками» и зададим пароль на использование ключа. Придумаем именно отдельный пароль, не тот, что от пользователя сервера. Можно выбрать вариант проще, который возможно будет без труда запомнить и ввести вручную, например . Его мы будем в будущем вводить каждый раз, как потребуется использовать ключ. И так, задаем…
ssh-keygen -f ~/.ssh/server-key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase):
После этого нас попросят ввести пароль еще раз, повторяем его и если вы правильно ввели путь до папки для ключа, то должен получиться примерно такой вывод:
:~$ ssh-keygen -f ~/.ssh/server-key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/uxumax/.ssh/server-key. Your public key has been saved in /home/uxumax/.ssh/server-key.pub. The key fingerprint is: SHA256:RX489Wcrb1rt/CRlEs08D8T5Wn//qydYZOpOlIs+cGE The key's randomart image is: +-------+ | . .o. | | o . oo= | | o + ooB| | E ..+ +B| | S .o+..+=| | . .o...+++| | o..oo .+=| | ...o .+*.| | .o. o+.O| +---------+ :~$
В выводе строка с текстом говорит в какой именно папке сохранился ключ.
Добавление ключа в список доверенных на сервере
В предыдущем этапе мы только создали ключ. Пока он не подходит ни к одному серверу. Чтобы использовать его для входа на наш сервер, необходимо добавить его в список доверенных ключей на этом сервере. Звучит сложно, но на самом деле все обходится лишь одной командой, которая содержит путь до ключа, логин и IP-адрес сервера в своих опциях и имеет такой вид: .
После ввода команды потребуется разово ввести пароль от сервера, после чего ключ будет авторизован на сервере.
:~$ ssh-copy-id -i ~/.ssh/server-key /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/uxumax/.ssh/server-key.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys 's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh ''" and check to make sure that only the key(s) you wanted were added. :~$
Подключение к серверу по ключу
Теперь можно подключаться к серверу, используя ключ. Для этого вводим команду, которая содержит логин, IP-адрес сервера и путь до ключа с опцией -i:
После ввода потребуется ввести пароль от ключа, который мы задавали в прошлом разделе. Если вы тогда просто нажали Enter, ничего не вводили, то вас сразу перекинет на север, без запроса пароля.
:~$ ssh -i ~/.ssh/server-key Enter passphrase for key '/home/uxumax/.ssh/server-key': Linux debian9 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:21:29 PDT 2020 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. :~#
Автономный удаленный компьютер
В настоящее время это экспериментальная функция, но она будет включена по умолчанию в следующем выпуске.
Если вы ограничены брандмауэром или ваша компания блокирует ваши виртуальные машины, и они не могут подключиться к Интернету, расширение Remote-SSH не сможет подключиться к вашей виртуальной машине, поскольку VS Code должен загрузить компонент, называемый VS Code Server, на удаленную машину.
Однако теперь вы можете решить эту проблему с помощью нового пользовательского параметра в расширении Remote-SSH. Если вы включите параметр , расширение сначала установит VS Code Server на клиент, а затем скопирует его на сервер через SCP.
Шаг 1 — Установка плагина Remote-SSH
Extensions Marketplace — возможность загружать поддерживаемые и сторонние расширения для самых разных инструментов и языков программирования. Здесь вы найдете плагин Remote-SSH, после чего установите его.
С левой стороны IDE находится вертикальный ряд из пяти значков. Нижний значок, который выглядит как четыре квадрата в коробке с раскрывающимся правым верхним квадратом, — это значок Extensions Marketplace:
Также вы можете получить доступ к этому разделу, нажав . После открытия этой страницы вы увидите предлагаемые плагины для загрузки и установки.
После открытия Extensions Marketplace введите в панели Поиск расширений в Marketplace. Когда найдете плагин, выберите его и нажмите зеленую кнопку Установить для установки расширения.
Расширение установлено. Далее вы настроите расширение, чтобы подключиться к серверу.
Лучшие клиенты SSH для Windows
Большой недостаток в Windows – отсутствие совместимой с Linux оболочки. Есть несколько главных клиентов SSH, которые заполняют этот пробел. Чтобы перейти к делу: PuTTY – это самый распространенный бесплатный SSH-клиент для Windows. Мой личный фаворит – MobaXterm, который бесплатен для личного использования с 10 хостами. Читайте дальше, чтобы узнать больше о других бесплатных клиентских опциях Windows SSH.
1. PuTTY (бесплатно; с открытым исходным кодом)
Прежде чем мы поговорим об альтернативах PuTTY, позвольте мне сначала поговорить о PuTTY, который предлагает отличную бесплатную оболочку SSH / Telnet для Windows. Кто-то, вероятно, скажет, что PuTTY – лучший SSH-клиент. Я показал вам, как установить PuTTY на Windows. Подключиться к удаленному SSH-серверу так же просто, как просто набрать IP-адрес или домен и порт и нажать «Открыть».
SSH-доступ с PuTTY для Windows
Вас могут попросить ввести имя пользователя и пароль для подключения к удаленному SSH-серверу. Кроме того, вы можете использовать PuTTY с ключами SSH для подключения без паролей. Вы даже можете создать ярлык Windows для сеансов PuTTY, чтобы открыть сеанс SSH одним щелчком мыши. Теперь, когда мы увидели, что такое PuTTY, давайте рассмотрим некоторые лучшие SSH-клиенты, которые могут быть отличными альтернативами PuTTY.
Важная информация
В первую очередь убедитесь, что у вас есть интернет. Для этого попробуйте открыть какой-нибудь сайт обычным способом. При отсутствии соединения сначала придется его восстановить. О том, как это сделать, мы писали в отдельных статьях.
Убедитесь, что вы пользуетесь последней версией Виндовс 10. Для этого проверьте наличие обновлений к ней. О том, как обновить «десятку», мы рассказывали в другой статье.
Причиной отсутствия подключения может быть конкретный ВПН-сервер. В этом случае попробуйте поменять его, например, выберите из списка сервер другой страны.
Если для реализации виртуальной частной сети используется стороннее ПО, а не встроенная в Windows функция, сначала попробуйте обновить его, а при отсутствии такой возможности просто переустановите.
основные черты
Эта программа включает в себя большое количество функций для программистов, системных администраторов и сетевых администраторов. Он включает в себя все необходимые сетевые инструменты для правильного выполнения работы, например, он включает в себя очень полный клиент SSH, X11, клиент RDP, клиент VNC, клиент FTP, Mosh и многое другое, как будто этого было недостаточно, он также позволяет нам чтобы поднять на локальном компьютере сервер SSH / SFTP для безопасного подключения к нам, кроме того, мы также можем создать сервер TFTP, FTP, HTTP, Telnet, VNC и даже сервер iperf для проверки скорости в локальной сети. Эта программа позволяет запускать Unix / Linux команды, основанные на bash в самой операционной системе Windows, как если бы мы были в подсистеме Windows Linux, но без необходимости ее установки на нашем компьютере.
MobaXterm имеет много преимуществ перед всеми аналогичными программами, например, если мы подключимся к удаленному SSH-серверу, мы получим консоль для ввода команд, но с левой стороны мы получим все дерево каталогов для управления файлами через SFTP, потому что Эта программа также включает SFTP-клиент для безопасной передачи файлов и папок. Кроме того, благодаря поддержке X11 удаленные приложения также можно просматривать прямо из этой программы.
Один из аспектов, который нам больше всего понравился в MobaXterm, — это его дизайн, у него интуитивно понятный пользовательский интерфейс, который, несмотря на множество вариантов конфигурации, идеально подходит как для новичков, так и для более опытных пользователей.
MobaXterm в настоящее время имеет две версии, MobaXterm Home нацелена на домашних пользователей, которые хотят эффективно управлять своим оборудованием, у нас также есть версия MobaXterm Professional, предназначенная для профессиональных сред, эта последняя версия включает в себя множество дополнительных функций и позволяет настраивать программное обеспечение. . Например, в бесплатной версии мы можем установить максимум 12 удаленных сеансов, максимум 2 туннеля SSH и 4 макроса, однако в бесплатной версии ограничений нет.
Эта программа совместима только с операционными системами Windows, у нас есть «Portable» версия, не требующая установки, и другая версия с установщиком. Если вы собираетесь протестировать программное обеспечение, мы рекомендуем «Portable» версию, в противном случае, если вы собираетесь использовать его постоянно, мы рекомендуем версию с установщиком, потому что мы можем установить дополнительное программное обеспечение для увеличения его функциональности.
Использование пароля
Начнем с инструкции о том, как подключиться к удаленному серверу через SSH по логину и паролю. Это самый простой способ. Хостер предоставляет вам IP-адрес, логин и пароль. Этого достаточно для того, чтобы установить соединение с удаленным сервером.
Подключение на Windows
Моя основная система — Windows. Раньше для подключения к серверу через SSH я пользовался сторонней утилитой PuTTY, потому что в операционной системе не было встроенного компонента. В «десятке» он появился, так что теперь можно подключаться к SSH через командную строку (cmd).
Чтобы включить встроенный в систему OpenSSH:
- Откройте «Параметры» (Win + I) и перейдите в раздел «Приложения».
- Выберите опцию «Управление дополнительными компонентами».
- Нажмите «Добавить компонент».
- Выберите в списке OpenSSH Client и нажмите «Установить».
- После завершения установки перезагрузите систему.
Теперь разберемся, как подключиться к SSH через cmd. Запустите командную строку и выполните запрос вида ssh root@185.104.114.90.
Значение root — логин для подключения, вы получили его в письме при создании сервера. 185.104.114.90 — IP-адрес сервера. Его можно посмотреть в панели управления сервером или в том же письме, которое прислал хостер. У команды может быть также дополнительный параметр -p, после которого прописывается номер порта. По умолчанию используется порт 22. Если у вас настроен другой порт, нужно явно его указать, — например, полный адрес может выглядеть так: ssh root@185.104.114.90 -p 150.
После выполнения команды клиент SSH предложит добавить устройство в список известных. Введите в командной строке yes и нажмите на Enter. Затем укажите пароль для доступа к серверу. На этом подключение к серверу через SSH завершено — теперь все команды будут выполняться на удаленной машине, к которой вы подключились.
На версиях младше Windows 10 1809 нет встроенной поддержки протокола OpenSSH. В таком случае понадобится сторонняя утилита. Смотрим, как через PuTTY подключиться по SSH:
- Запустите PuTTY.
- На вкладке Session укажите Host Name (IP-адрес сервера), Port (по умолчанию 22, но если вы в конфигурации сервера указали другой порт, нужно задать его номер).
- Убедитесь, что тип соединения установлен SSH.
- Нажмите на кнопку Open, чтобы подключиться.
Если вы ввели правильные данные, появится окно консоли, в котором нужно указать логин и пароль для подключения к серверу. При первом запуске также отобразится запрос на добавление устройства в список известных.
Подключение на Linux и macOS
Теперь посмотрим, как подключиться по SSH через терминал на Linux. Для этого не требуется установка дополнительных компонентов, все работает «из коробки».
- Запустите терминал. Обычно для этого используется сочетание клавиш Ctrl+Alt+T. Найти терминал также можно по пути «Главное меню» — «Приложения» — «Система».
- Выполните команду для подключения. Синтаксис такой же, как на Windows, — ssh root@185.104.114.90. Если порт не стандартный, то нужно явно его указать: например, ssh root@185.104.114.90 -p 150. Вместо root вы указываете свое имя пользователя, а вместо 185.104.114.90 — IP-адрес своего сервера.
- Если хост и порт указаны верно, на следующем шаге появится запрос на ввод пароля. При первом подключении также будет предложение добавить новое устройство в список известных. Для этого введите yes и нажмите на клавишу Enter.
На этом подключение завершено. Теперь все команды, которые вы вводите в терминале, будут выполняться на удаленной машине.
Если IP-адрес или порт указаны неверно, то на экране появится сообщение об ошибке — Connection Refused. Это может также говорить о том, что доступ запрещен брандмауэром на удаленном сервере (если вы его не отключили). Чтобы разрешить подключение через SSH:
- на сервере с Ubuntu/Debian выполните команду $ sudo ufw allow 22/tcp;
- на сервере CentOS/Fedora выполните команду $ firewall-cmd —permanent —zone=public —add-port=22/tcp.
Цифра 22 в синтаксисе — номер порта. Если вы используете другой порт, то укажите его явно.
Если вы знаете как подключиться через SSH на Linux, то справитесь с этой задачей и на macOS. В операционной системе Apple тоже есть встроенный терминал. Синтаксис команды для подключения не меняется: ssh root@185.104.114.90, где root — ваш логин, а 185.104.114.90 — IP-адрес сервера, с которым вы устанавливаете соединение.
Генерация SSH ключей в Windows 7/8
Генерация SSH ключа с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрено.
Для генерации воспользуйтесь приложением «PuTTY» и входящим в пакет дополнением «PuTTYgen».
- Скачайте и установите приложение «PuTTY».
- Запустите приложение «PuTTYgen».
- В поле «Type of key to generate» укажите «RSA».
- А для поля «Number of bits in a generated key» установите значение «2048».
- Нажмите «Generate».
Важно! Во время генерации ключа водите курсором в поле «Key» до тех пор, пока ключ не появится в поле
- В поле «Key passphrase» введите надежный пароль.
- Подтвердите пароль в поле «Confirm passphrase».
- Нажмите кнопку «Save private key» и сохраните закрытый ключ.
Внимание! Никогда не передавайте закрытый ключ и пароль сторонним лицам
- Нажмите «Save public key» и сохраните открытый ключ в удобном для вас месте.
- Вы всегда можете открыть и скопировать сохраненные ключи при помощи приложения «Блокнот».
Подключение по SSH
Подключение происходит с помощью команды
ssh + имя_пользователя + хост
Например
ssh andrei@192.168.0.2
Если вы подключаетесь к хосту впервые, появится предупреждение
The authenticity of host ‘192.168.56.101 (192.168.56.101)’ can’t be established.
ECDSA key fingerprint is SHA256:db8az/qbrWOJWvNRv2d9UHaDBnnUHanJ9Svca9vFx7c.
Are you sure you want to continue connecting (yes/no/)?
Если выбрать yes
то в файл
~/.ssh/known_hosts
добавится похожая строка:
|1|abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567
Обычно файл
known_hosts
имеет следующий формат (записи идут через пробел)
Таким образом
abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1=
Это хэш от имени сервера.
Здесь через пробел записаны три элемента: хэш от имени сервера, название используемого ассиметричного алгоритма и публичный ключ сервера. Разберём их по очереди.
Настройка аутентификации по ключу из Linux
Генерируем публичный и приватный ключ на клиентской машине используя утилиту ssh-keygen. В процессе выполнения утилита предложит изменить путь к приватному ключу и ввести парольную фразу для дополнительной защиты. Оставляем все параметры по умолчанию нажимая Enter при выводе запросов.
В результате в домашнем каталоге пользователя в папке .ssh, будут сгенерированы два файла id_rsa и id_rsa.pub содержащие закрытый и открытый ключи соответственно.
После этого необходимо открытый ключ передать на сервер, а именно скопировать содержимое файла “id_rsa.pub” в файл “~/.ssh/authorized_keys” на сервере. Воспользуемся самым простым способом, утилитой “ssh-copy-id” В качестве параметров указываем логин и IP-адрес сервера, как при обычном подключении. После ввода пароля публичный ключ клиента будет автоматически скопирован на сервер. Выполняем команду:
После выполнения этих действий при подключении к серверу, пароль запрашиваться не будет.
Заключение
Подключившись к удаленному серверу можно изменять файлы не покидая окна редактора кода, а также запускать команды в терминале удаленного сервера не переключаясь к стороннему ssh приложению.
Теперь у вас есть Visual Studio Code, настроенный для разработки на удаленном сервере с помощью SSH. Удаленное исполнение при помощи IDE обеспечивает множество преимуществ, в том числе способность быстро тестировать процесс выполнения вашего кода на различных операционных системах и с различными техническими спецификациями оборудования. Если у вас есть подключение к Интернету, вы можете подключаться к вашему серверу и работать над вашим кодом с любого компьютера, а также можете заниматься разработкой в среде Linux, даже если будете использовать Windows в качестве основной операционной системы.
Заключение
Теперь у вас есть Visual Studio Code, настроенный для разработки на удаленном сервере с помощью SSH. Удаленное исполнение при помощи IDE обеспечивает множество преимуществ, в том числе способность быстро тестировать процесс выполнения вашего кода на различных операционных системах и с различными техническими спецификациями оборудования. Если у вас есть подключение к Интернету, вы можете подключаться к вашему серверу и работать над вашим кодом с любого компьютера, а также можете заниматься разработкой в среде Linux, даже если будете использовать Windows в качестве основной операционной системы.