در روش زیر یه کار جالب رو با SSH با هم یاد میگیریم که خیلی بدرد می خوره برای اطلاعات بیشتر می تونید man دستور ssh رو مطالعه کنید

فرض کنیم که سیستم شما در خانه از طریق مودم به اینترنت وصل است و یا در شرکت از طریق شبکه داخلی به اینترنت اتصال داره که در بعد از یک سیستم دیوار آتش قرار داره. شما دسترسی به این دیوار آتش ندارید و Gateway اصلی هم در اختیار شما نیست. حالا شما با سیستم لینوکس خودتون دچار مشکلاتی هستید و هر چفدر ازدوستان سوال کردید همه گفتند که باید سیستم شما را از نزدیک ببیند تا بتونند کار را مستقیما خودشون انجام بدن.
در اینجا یک راهی وجود دارد که شما می تونید برای دوستتون یک تونل ssh باز کنید تا اینکه اون بتونه بر روی سیستم شما login کنه و مشکلات شما را حل کنه.
-فرض کنیم که سیستم شما اسمش هست Alireza و شما مثلا در مورد تنظیمات Squid مشکل داری. ولی ssh شما کار میکنه.
- لازم است سیستم دوست شما دارای یک ssh server فعال باشه که شما بتونید بر روی اون login کنید و لازمه که دوست شما دارای اسم و IP ثابتی باشه. اگر دوست شما از IP های دینامیک استفاده میکنه میشه با استفاده از سرویس سایت های مثل dyndns.org که سرویس مجانی Resolve نامها را دارند استفاده کنه . بعد از داشتن این موارد لازم کار تونل زدن را شروع می کنیم


۱. دوست شما برای شما یک نام کاربری معمولی درست میکنه و اسم رمز اون را با تلفن به شما میگه مثلا
User name and password on irani.linuxhome.org
username: Alux
password: xxxxxx

اسم سیستم دوست شما هم هست irani.linuxhome.org
۲. حالا شما برای سیستم دوستتون یک درگاه بخصوص را آزاد میکنید تا اینکه دوست شما بتونه به Alireza شما وصل بشه به اینصورت


ssh Alux@irani.linuxhome.org -R 2003:Alireza:22
This email address is being protected from spam bots, you need Javascript enabled to view it

و بعدش یک اتصال ssh باز میشه که شما نباید آن را ببندید تا اینکه دوست شما بتونه از اون استفاده کرد.

دستور فوق در واقع اینجوری بیان میشه که در سیستم ریموت و پورت 2003 هر کسی کانکت شد اون رو فروارد کنه به پورت 22 از سیستمی به نام Alireza که این میتونه Ip هم باشه




۳. اکنون دوست شما میتونه بر روی irani.linuxhome.org این دستور را اجرا کنه و به سیستم شما وصل بشه ولی حالا اون نیاز داره که یک نام کار بری و اسم رمزش را بر روی سیستم شما بدونه که شما با تلفن بهش میگید. مثلا شما براش نام کاربری PN را ساختید
ssh PA@localhost -p 2003

خوب از حالا به بعد اون رو سیستم شماست. اگر خواستید که دسترسی root هم داشته باشه بهش با تلفن اسم رمز را میدید. و اگر هم خواستید که اتصالشو قطع کنید کافی است که اون اتصال باز شده که در مورد ۲ باز کردید قطع کنید و یا process مربوط را از بین ببرید.
توضیحات اضافی:
- این کار در همه جا اصلا توصیه نمیشه و اگر از این تونل استفاده میکنید باید مواظب باشد و بخوصص اگر در شرکت ها یک تونل می زنید حتما از مدیریت شبکه اجازه بگیرید چرا که ممکن است بقیمت از دست دادن کارتون تمام بشه.
-برای اطلاعات کامل تر manpage را مطالعه کنید
- اگر در شبکه شما در گاه مربوطه بسته است میشه که مثلا از ۸۰ استفاده کرد.


اطلاعات تکمیلی :

-R port:host:hostport
Specifies that the given port on the remote (server) host is to
be forwarded to the given host and port on the local side. This
works by allocating a socket to listen to port on the remote
side, and whenever a connection is made to this port, the con-
nection is forwarded over the secure channel, and a connection
is made to host port hostport from the local machine. Port for-
wardings can also be specified in the configuration file. Priv-
ileged ports can be forwarded only when logging in as root on
the remote machine. IPv6 addresses can be specified with an
alternative syntax: port/host/hostport