LINUX-BG   Адрес : http://www.linux-bg.org
Да направим повече с SSH: X и пренасочването на портове (por
От: RED
Публикувана на: 28-08-2002
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=343521872
По 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 | Линукс на настолен компютър >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.17 usr + 0.03 sys = 0.20 CPU)