от RED(28-08-2002)

рейтинг (4)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

По Danen, V., Making the most of OpenSSH

Едно от най-употребяваните преимущества на SSH е възможността да се изграждат подсигурени тунели за неподсигурени връзки. Всеки знае например, че POP3 е неподсигурен протокол. Ако използувате команден ред (шел), за да теглите пощата си от POP3-сървъра, можете да изградите тунел за достъп до данните на сървъра посредством SSH. Същото е напълно възможно и с Х-приложенията: на отдалечена машина стартирате Х-приложение с графичен интерфейс и виждате изхода на локалния екран.

Да приемем, че искате да установите връзка с отдалечен POP3-сървър, условно наречен remotesystem, посредством SSH. Първо трябва да изберете произволен порт от 1024 до 65535. Например, взимаме порт 10110. Създавате SSH-тунел като този:

ssh -L10110:localhost:110 remotesystem

Когато затворим шела, връзката ще се разпадне. Докато е установена обаче, можем да изтеглим пощата си с POP3-клиент с подсигуряване от SSH, като го закачим не за remotesystem:110, а за localhost:10110.

Но да държим постоянно терминала отворен, това е най-малкото неудобно. Можем с помощта на cron да искаме да си проверяваме периодично пощата чрез fetchmail например. Досадно ще е всеки път да пускаме терминал и да правим пренасочване на портовете (port forwarding). Има два начина да решим задачата - с временно и с постоянно пренасочване.

ssh -f -L10110:localhost:110 remotesystem sleep 10

Тази команда казва на SSH да се стартира във фонов режим (-f), да изгради нашия тунел и да изпълни командата "sleep 10". След като командата се изпълни, SSH ще преустанови връзката. Ако fetchmail поверява пощата на всеки 10 сек., SSH ще изчака с преустановяването на връзката, докато трае проверката.  Така давате възможност на fetchmail да използува тунела, докато му трябва, но връзката няма да остане отворена през останалия период от време. Съществува и начин да проверявате пощата си през по-дълги интервали, ако дадете на командата "sleep" по-голяма стойност, например 10000.

Пренасочването на X11-данни работи на същия принцип. По подразбиране Mandrake Linux идва с включена поддръжка на X11-пренасочване. В конфигурационния файл "/etc/ssh/ssh_config" опцията "ForwardX11" е включена на "Yes". Когато се ssh-вате за отдалечена система, можете да изпълнявате X11-приложения от командния ред, така сякаш използувате например xterm на локалната си машина. Както при всички *nix системи, начините да стартирате отдалечени X11-програми са много. Първият, най-често използуваният, е просто да се SSH-нете за отдалечената система и да стартирате графичното приложение. Например:

ssh user@remotesystem
gkrellm &

Вие се закачате за отдалечената система като потребител "user" и стартирате програмата grellm, а знакът & я инструктира да работи във фонов режим. Сега можете да минимизирате терминала и да забравите за него. По-хитрият начин да стартирате същата програма е по познатия от предишния експеримент начин:

ssh -f user@remotesystem gkrellm

Сега вече можете да затворите терминала, но програмата gkrellm ще остане да си работи, понеже ssh  е стартиран във фонов режим. Ако искате да преустановите връзката, просто затворете gkrellm. По този начин ще прекъснете и SSH-връзката с отдалечената система.

По материали на http://www.mandrakesecure.net/en/docs/openssh.php


<< Съвети и трикове от Линукс Феста: част 1 | Линукс на настолен компютър >>