- Как удаленно управлять Linux из Windows
- Вам понадобится IP-адрес устройства Linux
- Как получить доступ к рабочему столу Linux из Windows через RDP
- Удаленный В Linux Из Windows С VNC
- Remote Into Linux через SSH
- Удаленный доступ к Linux с SSH в Windows PowerShell
- Подключайтесь к Linux удаленно, используя SSH в PuTTY
- Три способа удаленного управления Linux из Windows
- Перекрестное опыление: управляем Linux из-под Windows, и наоборот
- Microsoft Loves Linux
- Магомед не идет к горе
- Гора идет к Магомету
- В хозяйстве пригодится
Как удаленно управлять Linux из Windows
Настроить сервер Linux? Возможно, вы настроили его как решение для сетевого хранилища. Или, может быть, у вас есть рабочий компьютер с Linux, медиацентр или простой дополнительный компьютер в другой комнате.
Как бы то ни было, в какой-то момент вам понадобится удаленный доступ к устройству Linux с ПК с Windows или ноутбука. Итак, каково решение?
У пользователей Windows есть несколько инструментов, которые обеспечивают простой удаленный рабочий стол из Windows в Linux. Хотите знать, как получить доступ к вашему рабочему столу Linux из Windows? Читай дальше!
Вам понадобится IP-адрес устройства Linux
Прежде чем начать, найдите IP-адрес вашего устройства Linux. Это необходимо для всех параметров удаленного подключения, хотя в некоторых случаях подходит имя хоста (сетевое имя устройства).
Самый простой способ проверить IP-адрес — войти в систему на вашем устройстве Linux и открыть терминал. Войти:
IP-адрес устройства будет отображаться.
Если у Linux есть Ethernet-соединение, адрес будет указан вместе с eth0. Если он подключен по беспроводной сети, найдите IP-адрес, указанный для wlan0.
Если это не легко или не удобно, есть другой метод, который почти такой же простой. В окне браузера подключитесь к маршрутизатору. Обычно это адрес 192.168.0.1 или 192.168.0.100 . Вы должны быть в состоянии проверить, посмотрев на сам маршрутизатор или на документацию, поставляемую с ним.
После входа в маршрутизатор найдите опцию «Подключенные устройства» или аналогичную. Просмотрите IP-адреса, чтобы найти ваше устройство Linux по имени хоста. Некоторые маршрутизаторы могут даже отображать операционную систему устройства. Вы найдете IP-адрес, указанный рядом.
Запишите IP-адрес, так как он понадобится вам позже. И убедитесь, что вы знаете имя пользователя и пароль для вашего компьютера или сервера Linux!
Как получить доступ к рабочему столу Linux из Windows через RDP
Первый и самый простой вариант — RDP, протокол удаленного рабочего стола, встроенный в Windows.
Перед началом вам необходимо установить программное обеспечение xrdp на вашем Linux-компьютере. Вы можете сделать это лично или используя SSH (см. Ниже) с помощью одной команды:
Чтобы перевести RDP в Linux, запустите программное обеспечение Remote Desktop на вашем компьютере с Windows. В Windows 8 и более поздних версиях его можно найти с помощью поиска, просто введя буквы «rdp».
При открытом окне «Подключение к удаленному рабочему столу»:
- Введите IP-адрес
- Используйте Показать параметры для любых дополнительных требований к соединению
- Нажмите Подключиться
Преимущества RDP: хотя настройка может занять немного больше времени, использование RDP обеспечивает высокую надежность и удаленный доступ к рабочему столу в Linux. Это делает его идеальным инструментом для удаленной работы с машинами Linux.
Если вы планируете использовать RDP на регулярной основе, вы можете сэкономить время, создав эти пользовательские конфигурации для Windows RDP.
Удаленный В Linux Из Windows С VNC
Виртуальное сетевое соединение (VNC) также предоставляет удаленный доступ к вашему рабочему столу Linux. Однако, как и в случае с RDP, вам необходимо установить специальное программное обеспечение. На коробке Linux требуется программное обеспечение VNC-сервера; в Windows клиентское приложение.
TightVNC — один из самых популярных вариантов подключения к Linux через VNC. Вы найдете клиентское программное обеспечение Windows на веб-сайте , но убедитесь, что выбрали правильную версию.
После того, как вы это сделаете, установите Inversion-сервер на вашем Linux-компьютере. Это может быть через SSH (см. Следующий раздел) или с физическим доступом к компьютеру.
Во-первых, в Linux проверьте наличие обновлений:
Далее выполните эту команду:
После установки, запустите silentvncserver и установите пароль при появлении запроса.
Существует восемь символов для паролей. Теперь, когда закручивается туго настроенный сервер, вы увидите уведомление с номером порта — запишите его.
Для удаленного подключения к Linux из Windows:
- Запустите приложение TightVNC Viewer в Windows
- Введите IP-адрес и номер порта
- Нажмите Подключиться
- Введите пароль, который вы установили при появлении запроса
После этого откроется удаленный рабочий стол, и вы сможете начать использовать приложение по своему выбору — в пределах разумного. Некоторые приложения с высокими графическими требованиями вряд ли будут работать надежно, если вообще будут работать.
Преимущества VNC: предлагая быстрый доступ к удаленному ПК, TightVNC имеет свои ограничения. Вы можете выполнять стандартные вычислительные задачи, но действия, связанные со СМИ, строго ограничены.
Remote Into Linux через SSH
SSH (Secure Shell) — отличный способ получить удаленный доступ к вашему устройству Linux. Вы также не ограничены Windows с этой опцией, так как SSH может использоваться практически с любого устройства. Это также очень безопасно.
У вас есть два варианта SSH в Windows:
- SSH в Windows PowerShell
- Загрузите инструмент PuTTY SSH
Давайте посмотрим на оба.
Удаленный доступ к Linux с SSH в Windows PowerShell
Windows PowerShell — это новый инструмент командной строки в Windows 10, заменивший старое приложение командной строки. Чтобы найти его, щелкните правой кнопкой мыши «Пуск», чтобы получить доступ к меню питания, и выберите Windows PowerShell. В SSH введите:
Поэтому, если устройство Linux имеет IP-адрес 192.168.13.123, введите:
- ssh 192.168.13.123
- При появлении запроса примите сертификат
- Введите имя пользователя и пароль
Теперь у вас есть удаленный SSH-доступ к Linux.
Подключайтесь к Linux удаленно, используя SSH в PuTTY
Хотя приложение PuTTY изначально недоступно в Windows, его можно загрузить. PuTTY не установлен, однако. Вместо этого вы просто запускаете загруженный EXE-файл.
Скачать: PuTTY
Для удобства рекомендуется создать ярлык на рабочем столе.
Чтобы использовать PuTTY для SSH:
- Выберите Session > Host Name
- Введите имя сети компьютера Linux или введите IP-адрес, который вы указали ранее
- Выберите SSH, затем Открыть
- Когда будет предложено принять сертификат для подключения, сделайте это
- Введите имя пользователя и пароль для входа в ваше устройство Linux
Преимущества SSH: использование этого метода позволяет быстро вносить изменения в Linux, не пачкая рук. Особенно подходит для установки программного обеспечения и изменения администратора. Это также полезно для настройки следующей опции, VNC! SSH также идеально подходит для серверов без установленной среды рабочего стола.
Однако, если вам нужно удаленное подключение к рабочему столу Linux, попробуйте VNC или RDP.
Три способа удаленного управления Linux из Windows
Независимо от вашего варианта использования, есть подходящий вариант для удаленного доступа к устройству Linux из Windows. Эти методы работают независимо от того, является ли устройство сервером, настольным ПК на работе, медиацентром или даже Raspberry Pi.
От простого к сложному удаленного доступа к Linux из Windows, используя:
- RDP (протокол удаленного рабочего стола)
- VNC (виртуальное сетевое соединение)
- SSH (Secure Shell)
Если ваш дистрибутив Linux является Ubuntu, у вас уже есть встроенный VNC-совместимый инструмент удаленного рабочего стола.
Источник
Перекрестное опыление: управляем Linux из-под Windows, и наоборот
В прошлой статье я обещал рассмотреть механизм удаленного подключения с 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:
Для подключения к Windows-машинам при помощи PowerShell используется протокол WS-Man. Для GNU\Linux привычен SSH. Так как сегодня становятся универсальными оба протокола, разберем их подробнее.
PowerShell 6.0 под Windows и *nix, пока еще находится в бете. Поэтому не рекомендую без хорошего тестирования применять на боевых серверах описанное ниже.
Магомед не идет к горе
Когда технология удаленного доступа при помощи PowerShell только набирала обороты, единственным универсальным способом подключения к разным системам был протокол WS-Man. Для тестового стенда я взял Windows Server 2016 и Centos 7, для которых и буду настраивать возможность удаленного подключения и выполнения команд при помощи этого протокола.
Для начала установим на Centos свежий PowerShell:
После установки появилась возможность запускать привычные 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 командой:
Далее нужно настроить порты и аутентификацию в конфигурационном файле /etc/opt/omi/conf/omiserver.conf, после чего перезапустить сервер командой:
Для упрощения эксперимента я не буду настраивать ни NTLM-аутентификацию, ни Kerberos. Еще и шифрование отключу ― разумеется, в боевой среде делать этого не стоит. Для включения текстовой аутентификации и шифрования на стороне Windows в работе winrm достаточно выполнить следующие команды:
После настройки можно проверить работу OMI из консоли Windows:
Подключаемся к CentOS из cmd.
Теперь проверим работу обратным подключением ― из Linux к Windows:
… а затем с CentOS подключаемся к Windows.
После того, как WMI\OMI заработал, нужно установить и настроить PSRP. К сожалению и вопреки инструкции, бинарник отсутствует. Библиотеку пришлось компилировать, долго и нудно исправляя возникающие ошибки зависимостей:
Теперь мы сможем подключаться с Windows на Linux и наоборот при помощи PowerShell. Начнем с Windows на Linux:
С Windows на Linux.
Аналогичным образом можно провести и обратное подключение.
Invoke-Command можно «натравить» на список компьютеров, и с рабочей станции Windows создать пользователя на всех серверах Linux командой вида:
Надо сказать, что способ не самый удобный и эффективный. Минусов добавляет компиляция библиотек, разнообразные баги ― например, на момент написания статьи PSRP не позволял нормально подключиться из Linux в Windows.
Да и сами разработчики рекомендуют не плясать вокруг WS-Man, а обратиться к проверенному способу ― SSH. Что ж, попробуем и его.
Гора идет к Магомету
На этот раз машина с Windows получит чуть больше специфической подготовки ― нужно установить свежий PowerShell и OpenSSH.
После можно проверить синтаксис командлета New-PSSession. Если все произошло как надо, то командлет, помимо привычного параметра ComputerName, будет поддерживать и HostName.
PowerShell 6.0.0-beta.9 и обновленный синтаксис командлета.
Качаем последний релиз или используем пакет из репозитория Chocolatey. Все это разархивируем в \Program Files\OpenSSH.
В консоли с правами администратора переходим в папку с разархивированным содержимым и запускаем установку командой:
Теперь генерируем ключи:
В тестовой среде мы будем использовать парольную аутентификацию, поэтому стоит убедиться что она включена в файле sshd_config:
Если вы также хотите автоматически запускать PowerShell при подключении по SSH, то в параметре subsystem нужно прописать путь к желаемой версии PS:
Для работы клиента SSH нужно добавить директорию в %PATH% любым удобным способом. Например, таким:
Остается только настроить и запустить службы:
После установки уже можно наслаждаться подключением к серверу Windows по ssh.
C Windows через Putty на Linux, с Linux обратно на Windows по SSH.
На достигнутом останавливаться не будем и перейдем к настройке Linux. При настройке сервера SSH по умолчанию достаточно прописать PowerShell в Subsystem:
Теперь проверим подключение через командлет New-PSSession и Invoke-Command.
Работаем из PowerShell с Linux-сервером.
Теперь подключимся из Linux к Windows:
Работаем из PowerShell с Windows-сервером.
В отличие от WS-Man, SSH настраивается намного проще и работает стабильнее. Да и беспарольное подключение по ключам настраивать привычнее.
В хозяйстве пригодится
С однозначным «советом потребителю» все опять сложно: SSH проще в настройке и стабильнее, но WS-Man использует API и позволяет применять инструменты вроде JEA. На боевых серверах использовать WS-Man я бы не стал однозначно, а вот реализация OpenSSH в Windows как сервера, так и клиента мне понравилась. Для самопальной автоматизации вполне подойдет даже без PowerShell.
В любом случае, границы между Linux и Windows хоть и медленно, но начинают стираться, что безусловно радует.
Источник