ZSSH(1) ZSSH ZSSH(1)

zssh - پوشش تعاملی انتقال فایل برای ssh

zssh [گزینه‌های zssh] [--] [گزینه‌های ssh]
ztelnet [گزینه‌های zssh] [--] [گزینه‌های telnet]

zssh (Zmodem SSH) برنامه‌ای برای انتقال تعاملی فایل‌ها به یک ماشین دوردست همگام با استفاده از پوستهٔ امن ( ssh ) است. این ابزار به عنوان جایگزینی راحت برای scp در نظر گرفته شده است که امکان انتقال فایل‌ها را بدون نیاز به باز کردن نشستی دیگر و احراز هویت مجدد فراهم می‌کند.

برنامهٔ zssh یک پوشش تعاملی برای ssh است که جهت جابه‌جایی اتصال ssh میان پوستهٔ دوردست و انتقال فایل استفاده می‌شود. این کار با استفاده از یک جفت tty/pty دیگر میان کاربر و فرایند محلی ssh انجام می‌گیرد تا tty کاربر (حالت پوستهٔ دوردست) یا فرایندی دیگر (حالت انتقال فایل) را به اتصال ssh متصل کند.

عملکرد ztelnet مشابه zssh است، با این تفاوت که به جای ssh از telnet استفاده می‌شود. این دستور معادل 'zssh -s "telnet -8 -E"' است.

فایل‌ها از طریق پروتکل zmodem و با استفاده از دستورهای rz و sz منتقل می‌شوند.

برنامهٔ zssh مانند یک نشست معمولی ssh رفتار می‌کند تا زمانی که توالی گریز (escape sequence) فشرده شود (پیش‌فرض ^@ است که می‌تواند با فشردن C-space، یا C-2، یا C-` ایجاد شود)، که حالت انتقال فایل را فعال می‌کند. سپس یک خط فرمان جدید نمایش داده می‌شود و می‌توان دستورها را به‌طور محلی برای آغاز انتقال فایل (در میان کارهای دیگر) اجرا کرد. رفتار آن تقریباً شبیه به یک پوستهٔ محلی با امکان ویرایش خط، تاریخچه و تکمیل خودکار (به لطف libreadline)، بسط الگو (globbing) و نویسه‌های گریز ( " و ' و \ ) است.

دستورهای توکار زیر توسط خود zssh مدیریت می‌شوند: ? , cd , disconnect , escape , exit , help , hook , quit , repeat , rz , suspend , sz , version

تغییر دایرکتوری جاری
قطع اتصال و خروج
تغییر کلید گریز به ^X. بدون آرگومان، کلید گریز فعلی را چاپ می‌کند
خروج از حالت انتقال فایل. کلید ^D نیز می‌تواند برای این منظور استفاده شود.
چاپ راهنما و نکات
?
قلاب کردن برنامهٔ 'prg' روی pty. ورودی و خروجی استاندارد آن از کانال ssh عبور خواهد کرد.
تایپ کردن 'sz'/'rz' در واقع معادل 'hook sz'/'hook rz' است
داشتن تخیلی غریب برای بهره‌گیری کامل از این ویژگی بسیار مفید است.
مشابه exit.
دستور cmd را برای همیشه تکرار می‌کند (^C برای متوقف کردن). به عنوان مثال زمانی مفید است که از یک اسکریپت دوردست فراخوانندهٔ "sz" استفاده می‌کنید و نمی‌خواهید هر بار "rz" را تایپ کنید... با این حال به یاد داشته باشید که چندین فایل را می‌توان با یک جفت sz/rz منتقل کرد، بنابراین معمولاً نیازی به استفاده از repeat نیست.
دریافت فایل‌ها از ماشین دوردست. rz را اجرا کرده و فرایند را به اتصال ssh متصل می‌کند. اجرای sz روی ماشین دوردست (REMOTE) الزامی است:
                    1)
اجرای `sz <remote_file> ...' از پوستهٔ ماشین دوردست
                    2)
فشردن توالی گریز (C-space) برای ورود به حالت انتقال فایل
                    3)
اجرای دستور توکار `rz'
معلق کردن zssh (بازگشت به پوستهٔ ماشین محلی)
ارسال فایل‌ها به ماشین دوردست. sz را اجرا کرده و فرایند را به اتصال ssh متصل می‌کند. نیازی به اجرای دستی rz در سمت دوردست نیست.
چاپ اطلاعات نسخه

دستورهای توکار rz , sz , hook و exit پس از اتمام به حالت پوسته بازمی‌گردند.

هیچ سؤالی از کاربر پرسیده نشود
نمایش راهنمای پایه
اجرای cmd به عنوان پوستهٔ دوردست به جای پیش‌فرض "ssh -e none"; (در zssh) یا "telnet -8 -E" (در ztelnet)
مثال: zssh -s "rsh -x"
نمایش نسخه
تنظیم توالی گریز روی ^X

-- می‌تواند برای جداسازی گزینه‌های zssh از گزینه‌های ssh استفاده شود
سایر آرگومان‌ها عیناً به ssh/telnet/غیره ارسال می‌شوند.

تنظیم متغیر محیطی ZSSHESCAPE امکان بازنویسی توالی گریز پیش‌فرض را فراهم می‌کند. ZSSHESCAPE باید تنها شامل دو نویسه به صورت `^X' باشد، به این معنی که ^X توالی گریز جدید خواهد بود.

برای کارکرد صحیح zssh باید باینری‌های زیر به درستی نصب شده باشند:

پوستهٔ دوردستی که باید اجرا شود (ماشین محلی)
برنامه‌های ارسال و دریافت zmodem. باید هم در ماشین محلی و هم در ماشین دوردست موجود باشند و (ترجیحاً) نسخه‌های سازگاری داشته باشند.

اگر انتقال فایل آغاز شود اما هرگز پایان نیابد
( یعنی خطی مانند:
Bytes Sent: 38144/4610624 BPS:3424 ETA 22:15
یا
Bytes Sent: 0/ 513 BPS:0 ETA 00:00 Retry 0: Got ZCAN
دیده شود، ولی انتقال هرگز به اتمام نرسد
)
به احتمال زیاد pty/tty در یکی از سیستم‌ها ۸ بیتی تمیز (8-bit clean) نیست. (لینوکس 8-bit clean است، NetBSD نیست).
استفاده از گزینهٔ -e (escape) در rz باید این مشکل را حل کند.

انتقال‌ها را می‌توان با ^C متوقف کرد (تا حدی تجربی است =)

اگر در rz/sz گیر افتادید (برای مثال rz را اجرا کردید، اما سپس تصمیم گرفتید چیزی ارسال نکنید)، حدود ده بار ^X (کلید Ctrl-X، نه گریز zssh!) را فشار دهید تا متوقف شود

از `sz -y <files>' برای بازنویسی فایل‌ها در سمت دیگر استفاده کنید

گاهی اوقات ممکن است پس از اتمام انتقال فایل لازم باشد ۲ یا ۳ بار کلید Return را فشار دهید تا به پوسته برگردید. معمولاً چند رقم نمایش داده می‌شود؛ نگران نباشید آسیبی نمی‌زند (به شما یا ترمینال شما) ...

گاهی ممکن است tty پس از یک انتقال قطع‌شده (با استفاده از ^C) دچار به‌هم‌ریختگی شود. در این صورت تایپ کردن `reset' باید کمک کند.

پشتیبانی از لوله (pipe)، بازهدایت (redirection) و موارد دیگر در این پوسته وجود ندارد... اما به هر حال پوسته‌های فوق‌العاده‌ای از قبل وجود دارند =)

نویسندهٔ ttssh - رابرت اوکالاهان (Robert O'Callahan) - برای ایدهٔ اصلی

تیم SourceForge.

Matthieu Lucotte <gounter@users.sourceforge.net>

وبگاه zssh: http://zssh.sourceforge.net

ssh(1), telnet(1), scp(1), sz(1), rz(1), readline(3)

June 26, 2000 ZSSH