Пропускане към основното съдържание

Как отдалечено да се свържем с Linux машина от Windows


keywords: Windows, Linux, Ubuntu, ssh, vnc

източници: How to remotely connect to Linux machines from Windows
VNC over SSH2 - A TightVNC Tutorial: Example #3 - TightVNC over SSH from a Win32 PC
Сега ще демонстрираме как се управлява Linux машина с помощта на  SSH и VNC. SSH е съкращение на Secure SHell, мрежов протокол, който позволява обмяната на данни между две мержови устройства с помощта на криптиран тунел. Тунелът не е ограничен само с преноса на данни. Вие можете да го използвате за управление на машината на другия край, да стартирате некриптирани приложения през него и др. VNC е съкращение за Virtual Network Computing, система за споделяне, която позволява управлението на други машини.Преди да започнем, трябва да направим едно уточнение - това е опит да покажем как може да се свърже една машина с друга в интернет пространството, а не ръководство по сигурност на комуникациите, наръчни по конфигуриране на мрежи и др.
Възнамеряваме да свържем два компютъра, които вие можете свободно да настройвате. Някои ограничения на задачата и възможни решения ще представим накрая, в заключението на това изложение.
Локална мрежа (LAN) зад защитна стена (firewall) е едно, а свободен достъп до интернет - нещо съвсем друго.
Като минимум при използването на SSH или VNC върху интернет изисква прилагането на защитни стени с възможност за идентификация, задължително криптиране с дълги и често сменяни ключове, сложни паролим нестандартни портове, ограничение на броя на опитети за несполучливо влизане, дълга забрана за влизане след несполучлив опит, забрана на административни права и др.
Ако желаете да използвате описаното по-долу върху компютри, имащи достъп до интернет, имайте едно наум - има хора, желаещи да повредят вашите компютри или да получат важната информация, с която разполагате. Предупредени сте - ние си измиваме ръцете!
При нашата демонстрация ще използваме удобна домашна или офисна LAN, далеч от дивия интернет. Започваме като начало с VNC.

VNC

Клиенската ни система ще бъде Ubuntu (10.04). Ubuntu идва с преинсталиран VNC софтуер. От вас се очаква само да го конфигурирате. Удобно е, че по подразбиране нямате инсталирана защитна стена - портовете са затворени и така отпада нуждата от софтуер, който да ги контролира.
Ubuntu използва програмата Vino за VNC свързаност. Разбира се, ако предпочитате друг софтуер (напр. TightVNC) - можете да го използвате. Основните опринципи са същите.
Можете да настроите Vino чрез System > Preferences > Remote Desktop или като в конзола напишете vino-preferencies. Това ще отвори конфигурационното меню на Vino.
Сега трябва да изберем няколко опции: Allow other users to view your desktop и Allow other users to control your desktop. Тъй като искаме сигурност, ще изберем парола за достъп (password) и потвърждение на връзката (В случай, че ви трябва достъп до необслужвана машина - някакъв вид сървър, медиен център и др., трябва потвърждението на връзката да не е активно, а сигурността да подсилите по друг начин).


Тази част е писана за Ubuntu 8.10 и липсва в 10.04:
В Advanced, можем допълнително да настроим връзката. Криптирането на данните е строго препоръчително. Можете да изберете и нестандартен порт.
Vino 2


Проверете дали вашият VNC е отворен. Можете да използвате nmap за това. Програмата е включена в много дистрибуции или може да се свали от хранилищата.
nmap check VNC

Сега трябва да се настрои Windows машината. Ние се нуждаем от VNC програма за да се свържем с нашата Linux машина, затова трябва да си я свалим от мрежата и да я инсталираме. Имате голям избор, но на първо време можете да използвате безплатните RealVNC или TightVNC.

След като сте стартирали програмата, настройте адреса на отдалечената машина:
vncclient 1
vncclient 2
Заб.: При вас изгледът може да е друг в зависимост от софтуера и направените от вас настройки. Обикновено настройките по подразбиране работят добре.

При Ubuntu машината ще бъдете помолени да потвърдите връзката (ако кутийката "You must confirm each access to this mashine" е отметната):
Allow connection

И вече имаме Linux, управляван от Windows машина (забележете, че при моите настройки се появява само индикация за връзката горе вдясно, но не се иска разрешение):
Забележка: Тъй като linux машината е с монитор 3:4, а Windows - 6:9, при преглед на екрана се налага да го "превъртам".

SSH

Сега трябва да инсталираме пакета ssh в Ubuntu. При някои дистрибуции е инсталиран по подразбиране, при други е в Software Sources > Updatesхранилищата.
При опит за инсталация получих съобщение за грешка:


Използвайки опита на Francesco Ferrara и след като маркираме в Software Sources > Updates първите две позиции:


получаваме:


След като сме го инсталирали, независимо дали през Synaptic или с apt-get (от команден ред, sudo apt-get install ssh), проверяваме дали SSH порта е отворен:


Портът по подразбиране е 22.
Сега под Windows инсталираме ssh клиентски софтуер. Добър избор е PuTTY. Той е прост, лек и може да тръгне и от флашка.
PuTTY е програма, стартираща се от команден ред. Отворете конзолата (Run > cmd), отидете до директорията на  PuTTY и стартирайте PuTTY с отдалечения IP address, например:
putty 192.168.1.143
Ще бъдете помолени да въведете ключа на отсрещната машина. Това е застраховка, освен ако наистина знаете кой е компютърът отсреща. Ако "вярвата" на отсрещния компютър и искате да повтаряте сесията, отговорете с "Yes", ако сесията е еднократна - с "No", а ако искате да прекратите връзката - натиснете "Cancel".
Import key

Необходимо е да се легитимирате с парола::
Authenticate

и вече сте свързани:
Logged in

Сега можем вече да работим на отдалечената машина:
SSH working

Свързване чрез ssh и VNC

За целта обединяваме свързванията, като първо установяваме ssh тунела:


Синтаксисът е: putty -L 5901:localhost:5900 user@192.168.xxx.yyyкъдето:
5901 е виртуалния порт, зададен на VNC клиента;
5900 е реалния порт на VNC;
user е името на Linux потребителя, с което ще влизаме;
192.168.xxx.yyy е конкретния адрес на Linux машината.


Следва удостоверяване с парола:


След установяване на ssh връзката извикваме VNC клиента:

Забележка: адресът на VNC сървъра е localhost:5901 (или localhost:1), вместо реален ip адрес. По този начин пренасочваме връзката през ssh тунела.

Сега вече въвеждаме парола за VNC връзката:

И ето: на екрана на Windows машината имаме пълен изглед от Linux работния плот и ресурсите му, като връзката е подсигурена от ssh тунела.

Заключение

Задачата за установяване на дистанционна връзка с Linux машина е сравнително проста задача в сигурна среда. Ако се опитвате да направите тази връзка през интернет, ще трябва да отделите време за да се застраховате срещу различните атаки и опасности за сигурността на информацията. Ако се свързвате към някакъв файлов или принтер сървър, към медия център или просто не ви се разкарва до съведния компютър, то това е едно от решенията.

Свързването през интернет е по-същия начин, като има някои особености:
1. Ако работите на Windows машина, върху която нямате администраторски права и не можете да инсталирате, трябва да потърсите portable версия на някой от VNC клиентите. С putty няма да имате проблеми.
2. Ако управляемата машина е зад рутер/защитна стена, трябва да се отворят съответните портове. При D-Link/Belkin се наричат Virtual Servers:

Успех!


Коментари

Популярни публикации от този блог

Проектиране на кемпер с VehiPlan

Оливер Колонж (Oliver Collonge) написва през 2011 г. втора версия на безплатната програма за дизайн на кемпери VehiPlan . Според автора тя е писана и трябва да работи под Windows 2000/Vista. Пробите показват, че работи нормално и под Windows 7 и 10. След като свалите архива (zip) можете да го разархивирате в C:\Windows\Program Files (x86)\. Програмата е с френски интерфейс и затова са необходими още няколко файла - vb6fr.dll , comdlg32.ocx & mscomctl.ocx . Тези файлове се поставят в C:\Windows\SysWOW64\. Comdlg.ocx се поставя в C:\Windows\System32\. След това е необходимо да се стартира Command Prompt (cmd - като администратор) и да се изпълни командата: regsvr32 %systemroot%\system32\comdlg32.ocx Ако възникне някакъв проблем, по-нова версия на файла може да се свали от тук . След това трябва да направим препратка към C:\Program Files (x86)\VehiPlan-2-0-0\VehiPlan.exe за по-удобно стартиране, която да поставим на работния плот или друго подходящо място. В архивния файл на програмат

Диаграма на Гант с електронна таблица

Диаграмата на Гант се състои от ленти, ориентирани успоредно на времевата ос. Всяка лента представлява отделна задача в проекта (вид работа), краищата ѝ — началния и крайния момент на изпълнението  ѝ, а дължината ѝ - продължителността на задачата. Тези диаграми могат да се използват и за други, не точно производствени, цели - например да покажат заетостта на учебна зала. Когато представянето на данните е регулярна задача може да се използва специализиран софтуер като GanttProject, но за инцидентна визуализация можем да се справим с „подръчни средства“. Сега ще покажем как с електронна таблица (LibreOffice Calc) ще визуализираме времето, за което няколко служители са работили във фирмата: Изходните данни са в няколко колони: Продължителността на трудовия стаж в дни определяме с формулата D2=C2-B2, като я копираме за всеки последващ ред. На 6-и ред съответно с функцията MIN и MAX определяме минимална и максимална дата в таблицата, а на 7-и ред - записваме начална (1.1.1989) и

UHS: Разширение на мрежата с евтин рутер

Свързването на два (или повече) рутера в една локална мрежа увеличава броя на достъпните портове и служи за репликиране на wi-fi сигнала за по-пълно покритие на дома/офиса. Идеята е да се ползва евтин допълнителен рутер, чрез който с минимални капиталовложения можем да покрием цялото жилище/офис със сигнал с достатъчно високо качество. Връзката между двата рутера е по UTP кабел. Използването на новия рутер като безжична входна точка („AP“) е, както се казва, ,друга бира“ и ще бъде разгледана по-късно. В нашата имплементация ще използваме ADSL рутер Pirelli DRG A124G, стандартно доставян като крайно устройство от Виваком. Не знам каква е причината, но Мрежата е пълна с обяви за продажба на тези машинки на цена 5-10 лв.  Другият вариант е да се вземе някакъв рутер от вносителите на техника втора употреба от Западна Европа, но там обикновено липсват адаптерите и изобщо няма гаранция, че рутерът „ще запали“. Разбира се, съществува вариантът да се закупи и нов, но това за