.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "kitten-ssh" 1 "Jul 30, 2026" "0.48.2" "kitty" .SH "نام (NAME)" kitten-ssh \- اتصال آسان به میزبان‌های راه دور با محیط و تنظیمات شل محلی .SH "نمای کلی (OVERVIEW)" .INDENT 0.0 .IP \(bu 2 یکپارچه‌سازی خودکار شل \%<#\:shell-integration> در میزبان‌های راه دور .IP \(bu 2 کلون‌سازی آسان پیکربندی محلی شل/ویرایشگر در میزبان‌های راه دور .IP \(bu 2 \fBاستفاده مجدد خودکار از اتصالات موجود\fP برای جلوگیری از تاخیر در برقراری اتصال .IP \(bu 2 در دسترس قرار دادن باینری kitten در میزبان راه دور \fBدر صورت نیاز\fP .IP \(bu 2 \fBتغییر آسان رنگ‌های ترمینال\fP هنگام اتصال به میزبان‌های راه دور .IP \(bu 2 \fBهدایت خودکار سوکت کنترل از راه دور kitty\fP به میزبان‌های پیکربندی‌شده .UNINDENT .sp افزوده شده در نسخه 0.25.0: یکپارچه‌سازی خودکار شل، انتقال فایل و استفاده مجدد از اتصالات .sp افزوده شده در نسخه 0.30.0: هدایت خودکار سوکت‌های کنترل از راه دور .sp کیتن ssh به شما امکان می‌دهد به آسانی به میزبان‌های راه دور وارد شوید و محیط آنجا را به صورت خودکار به گونه‌ای آماده کنید که درست به راحتی شل محلی شما باشد\&. می‌توانید متغیرهای محیطی را برای تنظیم در میزبان دوردست و فایل‌هایی را برای کپی به آنجا مشخص کنید و تجربه کاربری در سیستم راه دور را دقیقاً مشابه شل محلی خود بسازید\&. علاوه بر این، این ابزار به طور خودکار قابلیت Shell integration \%<#\:shell-integration> را در میزبان راه دور فعال کرده و پایگاه‌داده terminfo مربوط به kitty را در آنجا کپی می‌نماید\&. .sp کیتن ssh یک پوشش سبک بر روی برنامه خط فرمان سنتی ssh \% است و از تمام گزینه‌ها، آرگومان‌ها و پیکربندی‌های مشابه پشتیبانی می‌کند\&. در سناریوهای استفاده تعاملی، این ابزار یک جایگزین مستقیم برای \fBssh\fP است\&. برای امتحان کردن آن، به سادگی دستور زیر را اجرا کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX kitten ssh some\-hostname\-to\-connect\-to .EE .UNINDENT .UNINDENT .sp در پایان باید به اعلان خط فرمان (شل پرامپت) در میزبان راه دور برسید، در حالی که یکپارچه‌سازی شل فعال است\&. اگر آن را پسندیدید، می‌توانید یک نام مستعار (alias) در فایل‌های rc شل خود تعریف کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX alias s=\(dqkitten ssh\(dq .EE .UNINDENT .UNINDENT .sp اکنون می‌توانید تنها با نوشتن \fBs hostname\fP متصل شوید\&. .sp اگر نگاشتی در \fBkitty.conf\fP تعریف کنید، مانند: .INDENT 0.0 .INDENT 3.5 .sp .EX map f1 new_window_with_cwd .EE .UNINDENT .UNINDENT .sp سپس، فشردن کلید \fBF1\fP پنجره جدیدی باز خواهد کرد که با استفاده از ssh kitten به صورت خودکار به همان میزبان و در همان دایرکتوری متصل شده است\&. .sp کیتن ssh را می‌توان از طریق فایل \fB~/.config/kitty/ssh.conf\fP پیکربندی کرد، جایی که می‌توانید متغیرهای محیطی برای تنظیم در میزبان راه دور و فایل‌هایی برای کپی از سیستم محلی به میزبان راه دور را مشخص نمایید\&. بیایید یک نمونه سریع را ببینیم: .INDENT 0.0 .INDENT 3.5 .sp .EX # کپی فایل‌ها و دایرکتوری‌های مورد نیاز برای آماده‌سازی برخی ابزارهای رایج copy .zshrc .vimrc .vim # تنظیم متغیرهای محیطی env SOME_VAR=x # متغیر COPIED_VAR در میزبان راه دور همان مقداری را خواهد داشت که به طور محلی دارد env COPIED_VAR=_kitty_copy_env_var_ # ایجاد برخی تنظیمات اختصاصی برای هر نام میزبان hostname someserver\-* copy env\-files env SOMETHING=else hostname someuser@somehost copy \-\-dest=foo/bar some\-file copy \-\-glob some/files.* .EE .UNINDENT .UNINDENT .sp برای جزئیات کامل درباره نحو و گزینه‌های \fBssh.conf\fP به ادامه متن مراجعه نمایید\&. علاوه بر این، می‌توانید گزینه‌های پیکربندی را در خط فرمان نیز ارسال کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX kitten ssh \-\-kitten interpreter=python servername .EE .UNINDENT .UNINDENT .sp آرگومان \fB\-\-kitten\fP می‌تواند چندین بار با دستورالعمل‌های \fBssh.conf\fP مشخص شود\&. این گزینه‌ها مقادیر نهایی مورد استفاده برای میزبان تطبیق‌یافته را بازنویسی می‌کنند، گویی به انتهای بخش منطبق با آن میزبان در \fBssh.conf\fP افزوده شده‌اند\&. این دستورالعمل‌ها تنها برای میزبانی که در این فراخوانی به آن SSH زده می‌شود اعمال می‌گردند، بنابراین هرگونه دستورالعمل \fBhostname\fP نادیده گرفته می‌شود\&. .sp \fBهشدار:\fP .INDENT 0.0 .INDENT 3.5 به دلیل محدودیت‌های طراحی پروتکل SSH، هر متنی که پیش از نمایش اعلان شل تایپ کنید ممکن است از دست برود\&. بنابراین در حالت ایده‌آل تا زمانی که اعلان شل را ندیده‌اید شروع به تایپ نکنید\&. 😇 .UNINDENT .UNINDENT .SH "یک مثال واقعی (A real world example)" .sp فرض کنید مرتباً به یک سرور عملیاتی SSH می‌زنید و تمایل دارید شل و ویرایشگر خود را در آنجا با استفاده از تنظیمات سفارشی خود برپا کنید\&. با این حال، افراد دیگر نیز ممکن است به آن سرور SSH بزنند و شما نمی‌خواهید تنظیمات آن‌ها را دستکاری کنید\&. در ادامه نحوه پیاده‌سازی این سناریو با استفاده از ssh kitten به همراه \fBzsh\fP به عنوان شل و \fBvim\fP به عنوان ویرایشگر آمده است: .INDENT 0.0 .INDENT 3.5 .sp .EX # اعمال این تنظیمات روی سرورهای سازمان من hostname myserver\-* # تنظیم zsh برای خواندن فایل‌های خود از my\-conf/zsh env ZDOTDIR=$HOME/my\-conf/zsh copy \-\-dest my\-conf/zsh/.zshrc .zshrc copy \-\-dest my\-conf/zsh/.zshenv .zshenv # اگر از فایل‌های راه‌انداز دیگر zsh استفاده می‌کنید آن‌ها را نیز به شکل مشابه اضافه کنید # تنظیم vim برای خواندن پیکربندی خود از my\-conf/vim env VIMINIT=$HOME/my\-conf/vim/vimrc env VIMRUNTIME=$HOME/my\-conf/vim copy \-\-dest my\-conf/vim .vim copy \-\-dest my\-conf/vim/vimrc .vimrc .EE .UNINDENT .UNINDENT .SH "نحوه کارکرد (How it works)" .sp کیتن ssh به این شیوه کار می‌کند که از طریق SSH یک اسکریپت راه‌انداز اولیه‌ساز POSIX sh (یا \fBبه صورت اختیاری\fP پایتون) را در میزبان راه دور با استفاده از یک \fBinterpreter\fP ارسال و اجرا می‌کند\&. این اسکریپت داده‌های راه‌اندازی را از طریق دستگاه TTY می‌خواند که kitty آن را به عنوان یک فایل فشرده tarball کدگذاری‌شده با Base64 ارسال می‌دارد\&. اسکریپت آن را استخراج کرده، \fBفایل‌ها\fP را در جای مناسب قرار می‌دهد و \fBمتغیرهای محیطی\fP را پیش از اجرای نهایی \fBشل ورود (login shell)\fP با فعال بودن قابلیت \fBیکپارچه‌سازی شل\fP تنظیم می‌کند\&. داده‌ها توسط kitten از طریق TTY با یک گذرواژه یک‌بارمصرف تصادفی درخواست می‌شوند\&. kitty درخواست را خوانده و اگر گذرواژه با گذرواژه‌ای که از قبل توسط kitten در حافظه اشتراکی میزبان محلی ذخیره شده مطابقت داشته باشد، انتقال مجاز شناخته می‌شود\&. اگر نسخه OpenSSH \% محلی شما بزرگ‌تر یا مساوی 8.4 باشد، داده‌ها فوراً و بدون هیچ تاخیر رفت‌وبرگشتی منتقل می‌شوند\&. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 هنگام اتصال به میزبان‌های BSD، این احتمال وجود دارد که اسکریپت راه‌انداز اولیه با خطا مواجه شده یا کند اجرا شود، زیرا شل‌های پیش‌فرض در آن‌ها به روش‌های گوناگونی محدود هستند\&. بهترین راهکار این است که پایتون را روی سیستم راه دور نصب کنید، مطمئن شوید که شل ورود سازگار با POSIX sh است، و از \fBpython\fP به عنوان \fBinterpreter\fP در \fBssh.conf\fP استفاده نمایید\&. .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 این قابلیت بسته به اینکه مالتی‌پلکسرهای ترمینال کدهای گریز (escape codes) را عبور دهند یا خیر و آیا مقادیر متغیرهای محیطی \fBKITTY_PID\fP \%<#\:envvar-KITTY_PID> و \fBKITTY_WINDOW_ID\fP \%<#\:envvar-KITTY_WINDOW_ID> در نشست جاری صحیح باشند (در زمان اتصال به یک نشست tmux که در پنجره دیگری اجرا می‌شود ممکن است نادرست باشند) و ssh kitten در پنجره مالتی‌پلکسر فعال جاری اجرا شود، ممکن است هنگام استفاده از مالتی‌پلکسرها کار کند یا نکند\&. .UNINDENT .UNINDENT .SH "پیکربندی راه‌اندازی میزبان (Host bootstrap configuration)" .INDENT 0.0 .TP .B hostname .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX hostname * .EE .UNINDENT .UNINDENT .sp نام میزبانی که گزینه‌های زیر برای آن اعمال می‌شوند\&. یک الگوی سراسری (glob pattern) می‌تواند برای تطبیق با چندین میزبان استفاده شود\&. چندین نام میزبان را نیز می‌توان با فاصله از یکدیگر مشخص کرد\&. نام میزبان می‌تواند شامل یک نام کاربری اختیاری به فرمت \fBuser@host\fP باشد\&. در صورت عدم تعیین، گزینه‌ها برای همه میزبان‌ها اعمال می‌شوند تا زمانی که نخستین مشخصات نام میزبان یافت شود\&. توجه داشته باشید که تطبیق نام میزبان در برابر نامی انجام می‌شود که شما در خط فرمان برای اتصال به میزبان راه دور تعیین می‌کنید\&. اگر می‌خواهید همان پیکربندی پایه را برای میزبان‌های مختلف لحاظ کنید، می‌توانید این کار را با دستورالعمل include \%<#\:include> انجام دهید\&. در نسخه 0.28.0 رفتار این گزینه اندکی تغییر کرد؛ اکنون، هنگامی که به یک نام میزبان برخورد می‌شود تمام مقادیر پیکربندی آن به جای به ارث رسیدن از بلوک نام میزبان منطبق قبلی، روی مقادیر پیش‌فرض تنظیم می‌شوند\&. این امر به این معنی است که نام‌های میزبان پیکربندی‌ها را به ارث نمی‌برند و در نتیجه از اثرات جانبی نامشخص جلوگیری می‌شود\&. .INDENT 0.0 .TP .B interpreter .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX interpreter sh .EE .UNINDENT .UNINDENT .sp مفسری که باید در میزبان راه دور استفاده شود\&. باید یا یک شل سازگار با POSIX یا یک فایل اجرایی \fBpython\fP باشد\&. اگر شل پیش‌فرض \fBsh\fP در دسترس نبوده یا خراب باشد، استفاده از یک مفسر جایگزین می‌تواند مفید واقع شود\&. .INDENT 0.0 .TP .B remote_dir .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX remote_dir .local/share/kitty\-ssh\-kitten .EE .UNINDENT .UNINDENT .sp مسیری در میزبان راه دور که فایل‌های مورد نیاز برای این kitten در آن نصب می‌شوند\&. مسیرهای نسبی نسبت به \fB$HOME\fP حل‌وفصل می‌شوند\&. در مسیرهای مطلق کاراکتر / ابتدایی حذف شده و بنابراین آن‌ها نیز نسبت به $HOME حل‌وفصل می‌گردند\&. .INDENT 0.0 .TP .B copy .UNINDENT .sp کپی فایل‌ها و دایرکتوری‌ها از میزبان محلی به میزبان راه دور\&. فایل‌های مشخص‌شده به عنوان مسیرهای نسبی نسبت به دایرکتوری HOME فرض شده و در HOME میزبان راه دور کپی می‌شوند\&. دایرکتوری‌ها به صورت بازگشتی کپی می‌گردند\&. اگر از مسیرهای مطلق استفاده شود، همان‌گونه که هستند کپی می‌شوند\&. برای مثال: .INDENT 0.0 .INDENT 3.5 .sp .EX copy .vimrc .zshrc .config/some\-dir .EE .UNINDENT .UNINDENT .sp از گزینه \fB\-\-dest\fP برای کپی فایل به مقصدی دیگر در میزبان راه دور استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX copy \-\-dest some\-other\-name some\-file .EE .UNINDENT .UNINDENT .sp الگوهای گلوب را می‌توان برای کپی چندین فایل با گزینه \fB\-\-glob\fP مشخص نمود: .INDENT 0.0 .INDENT 3.5 .sp .EX copy \-\-glob images/*.png .EE .UNINDENT .UNINDENT .sp فایل‌ها را می‌توان هنگام کپی با استفاده از \fB\-\-exclude\fP مستثنی کرد: .INDENT 0.0 .INDENT 3.5 .sp .EX copy \-\-glob \-\-exclude *.jpg \-\-exclude *.bmp images/* .EE .UNINDENT .UNINDENT .sp فایل‌هایی که نام راه دور آن‌ها با الگوی استثنا مطابقت داشته باشد کپی نخواهند شد\&. برای جزئیات بیشتر بخش دستور copy را ببینید\&. .SH "محیط شل ورود (Login shell environment)" .INDENT 0.0 .TP .B shell_integration .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX shell_integration inherited .EE .UNINDENT .UNINDENT .sp کنترل یکپارچه‌سازی شل در میزبان راه دور\&. برای جزئیات درباره نحوه کار این تنظیم به بخش Shell integration \%<#\:shell-integration> مراجعه کنید\&. مقدار ویژه \fBinherited\fP به معنای استفاده از تنظیمات موجود در \fBkitty.conf\fP است\&. این تنظیم برای بازنویسی یکپارچه‌سازی به ازای هر میزبان کاربرد دارد\&. .INDENT 0.0 .TP .B login_shell .UNINDENT .sp شل ورودی که باید در میزبان راه دور اجرا شود\&. به طور پیش‌فرض، از شل ورود حساب کاربری میزبان راه دور استفاده می‌شود\&. .INDENT 0.0 .TP .B env .UNINDENT .sp تعیین متغیرهای محیطی که باید در میزبان راه دور تنظیم شوند\&. استفاده از نام به همراه علامت مساوی (مانند \fBenv VAR=\fP) آن را روی یک رشته خالی تنظیم می‌کند\&. مشخص کردن تنها نام (مانند \fBenv VAR\fP) متغیر را از محیط شل راه دور حذف خواهد کرد\&. مقدار ویژه \fB_kitty_copy_env_var_\fP سبب می‌شود تا مقدار متغیر از محیط محلی کپی شود\&. تعاریف به ترتیب حروف الفبا پردازش می‌شوند\&. توجه داشته باشید که متغیرهای محیطی به صورت بازگشتی بسط داده می‌شوند، به عنوان مثال: .INDENT 0.0 .INDENT 3.5 .sp .EX env VAR1=a env VAR2=${HOME}/${VAR1}/b .EE .UNINDENT .UNINDENT .sp مقدار \fBVAR2\fP برابر با \fB/a/b\fP خواهد بود\&. .INDENT 0.0 .TP .B cwd .UNINDENT .sp دایرکتوری کاری در میزبان راه دور برای تغییر به آن\&. متغیرهای محیطی در این مقدار بسط داده می‌شوند\&. مقدار پیش‌فرض خالی است بنابراین تغییری صورت نمی‌گیرد، که معمولاً به معنای استفاده از دایرکتوری HOME است\&. .INDENT 0.0 .TP .B color_scheme .UNINDENT .sp تعیین طرح رنگ برای استفاده هنگام اتصال به میزبان راه دور\&. اگر این گزینه با \fB\&.conf\fP خاتمه یابد، نام فایل پیکربندی برای بارگذاری از پوشه کانفیگ kitty فرض می‌شود؛ در غیر این صورت نام تم رنگی برای بارگذاری از طریق کیتن themes \%<> در نظر گرفته می‌شود\&. توجه داشته باشید که تنها رنگ‌های مربوط به متن/پس‌زمینه تغییر می‌کنند و سایر تنظیمات پیکربندی در فایل‌های conf./تم‌ها نادیده گرفته می‌شوند\&. .INDENT 0.0 .TP .B remote_kitty .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX remote_kitty if\-needed .EE .UNINDENT .UNINDENT .sp در دسترس قرار دادن \fBkitten\fP در میزبان راه دور\&. برای اجرای کیتن‌هایی مانند icat \%<> جهت نمایش تصاویر یا کیتن انتقال فایل \%<> کاربرد دارد\&. تنها در صورتی کار می‌کند که میزبان راه دور دارای معماری باشد که باینری‌های از پیش کامپایل‌شده kitten \% برای آن در دسترس باشند\&. توجه داشته باشید که kitten در واقع به میزبان راه دور کپی نمی‌شود، بلکه یک اسکریپت راه‌انداز کوچک کپی می‌شود که در اولین اجرای kitten در میزبان راه دور، آن را دانلود و اجرا خواهد کرد\&. مقدار \fBif\-needed\fP به این معناست که kitten تنها در صورتی نصب می‌شود که در PATH سراسری سیستم موجود نباشد\&. مقدار \fByes\fP به معنای نصب kitten حتی در صورت وجود آن است و نسخه نصب‌شده اولویت خواهد داشت\&. در نهایت، \fBno\fP به این معناست که هیچ kitten در میزبان راه دور نصب نمی‌شود\&. کیتن نصب‌شده را می‌توان با اجرای \fBkitten update\-self\fP در میزبان راه دور به‌روزرسانی کرد\&. .SH "پیکربندی SSH (Ssh configuration)" .INDENT 0.0 .TP .B share_connections .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX share_connections yes .EE .UNINDENT .UNINDENT .sp درون یک نمونه واحد از kitty، تمامی اتصالات به یک سرور خاص می‌توانند به اشتراک گذاشته شوند\&. این کار تاخیر راه‌اندازی برای اتصالات بعدی را کاهش می‌دهد و بدان معناست که نیاز است تنها یک بار گذرواژه را وارد کنید\&. در پس‌زمینه، این ویژگی از SSH ControlMasters استفاده می‌کند و این موارد هنگام خروج kitty به صورت خودکار پاک‌سازی می‌شوند\&. می‌توانید میانبری برای \fBclose_shared_ssh_connections\fP \%<#\:action-close_shared_ssh_connections> تعریف کنید تا تمام اتصالات اشتراکی فعال قطع شوند\&. .INDENT 0.0 .TP .B askpass .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX askpass unless\-set .EE .UNINDENT .UNINDENT .sp کنترل برنامه‌ای که SSH برای درخواست گذرواژه‌ها یا تایید کلیدهای میزبان و غیره استفاده می‌کند\&. پیش‌فرض استفاده از \fBaskpass\fP بومی kitty است، مگر اینکه متغیر محیطی \fBSSH_ASKPASS\fP \%<#\:envvar-SSH_ASKPASS> تنظیم شده باشد\&. این گزینه را روی \fBssh\fP قرار دهید تا هیچ‌گونه مداخله‌ای در مکانیزم عادی ssh askpass انجام نشود، که معمولاً به معنای درخواست ssh در محیط ترمینال است\&. آن را روی \fBnative\fP قرار دهید تا همیشه از پیاده‌سازی askpass داخلی و بومی kitty استفاده شود\&. توجه داشته باشید که عدم استفاده از پیاده‌سازی kitty askpass ممکن است سبب شود SSH پیش از برقراری اتصال نیاز به استفاده از ترمینال داشته باشد، در نتیجه kitten نمی‌تواند از ترمینال برای ارسال داده‌ها بدون یک رفت‌وبرگشت اضافه استفاده کند که به تاخیر اولیه اتصال می‌افزاید\&. .INDENT 0.0 .TP .B delegate .UNINDENT .sp عدم استفاده از ssh kitten برای این میزبان\&. در عوض، دستوری که به عنوان نماینده (delegate) مشخص شده اجرا شود\&. برای مثال، استفاده از \fBdelegate ssh\fP دستور ssh را با تمام آرگومان‌های ارسالی به kitten، به جز آرگومان‌های ویژه kitten، اجرا خواهد کرد\&. این ویژگی برای میزبان‌هایی که توانایی پشتیبانی از ssh kitten را ندارند بسیار مفید است\&. .INDENT 0.0 .TP .B forward_remote_control .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX forward_remote_control no .EE .UNINDENT .UNINDENT .sp هدایت سوکت کنترل از راه دور kitty به میزبان راه دور\&. این ویژگی امکان استفاده از امکانات کنترل از راه دور kitty را از درون میزبان راه دور فراهم می‌آورد\&. هشدار: این کار به هر نرم‌افزاری در میزبان راه دور دسترسی کامل به رایانه محلی را می‌دهد، بنابراین آن را تنها برای میزبان‌های مطمئن و مورد اعتماد انجام دهید\&. توجه داشته باشید که این ویژگی به دلیل محدودیت‌های SSH با سوکت‌های انتزاعی یونیکس (مانند \fB@mykitty\fP) کار نمی‌کند\&. این گزینه از قابلیت فوروارد سوکت SSH برای هدایت سوکتی استفاده می‌کند که متغیر محیطی \fBKITTY_LISTEN_ON\fP \%<#\:envvar-KITTY_LISTEN_ON> به آن اشاره دارد\&. .SH "خودکارسازی Askpass (Askpass automation)" .INDENT 0.0 .TP .B password .UNINDENT .sp تعیین گذرواژه‌ای که باید هنگام درخواست گذرواژه توسط SSH استفاده شود\&. قالب مقدار به صورت \(dqbackend:secret\(dq است\&. در حال حاضر، تنها backend نوع \(dqtext\(dq پشتیبانی می‌شود که رمز را به صورت متن ساده در فایل پیکربندی ذخیره می‌کند\&. برای مثال: .INDENT 0.0 .INDENT 3.5 password text:my_password .UNINDENT .UNINDENT .sp اگر پیشوند backend حذف شود، جهت سازگاری با نسخه‌های پیشین به عنوان \(dqtext:\(dq تلقی می‌شود\&. مراقب باشید که ذخیره گذرواژه‌ها به صورت متن ساده ناامن است\&. .INDENT 0.0 .TP .B totp_secret .UNINDENT .sp تعیین کلید مخفی مشترک TOTP برای پر کردن خودکار کدهای یک‌بارمصرف هنگام درخواست SSH\&. قالب مقدار به صورت \(dqbackend:secret\(dq است\&. در حال حاضر، تنها backend نوع \(dqtext\(dq پشتیبانی می‌شود\&. برای مثال: .INDENT 0.0 .INDENT 3.5 totp_secret text:JBSWY3DPEHPK3PXP .UNINDENT .UNINDENT .sp اگر پیشوند backend حذف شود، جهت سازگاری با نسخه‌های پیشین به عنوان \(dqtext:\(dq در نظر گرفته می‌شود\&. .INDENT 0.0 .TP .B totp_digits .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX totp_digits 6 .EE .UNINDENT .UNINDENT .sp تعداد ارقام برای کدهای TOTP تولیدشده\&. مقدار پیش‌فرض 6 است\&. .INDENT 0.0 .TP .B totp_period .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX totp_period 30 .EE .UNINDENT .UNINDENT .sp مدت زمان اعتبار کد TOTP بر حسب ثانیه\&. پیش‌فرض 30 است\&. .SH "دستور copy (The copy command)" .INDENT 0.0 .INDENT 3.5 .sp .EX copy [options] file\-or\-dir\-to\-copy ... .EE .UNINDENT .UNINDENT .sp کپی فایل‌ها و دایرکتوری‌ها از میزبان محلی به میزبان راه دور\&. فایل‌های مشخص‌شده نسبت به دایرکتوری HOME فرض شده و در HOME میزبان راه دور کپی می‌شوند\&. دایرکتوری‌ها به صورت بازگشتی کپی می‌گردند\&. در صورت استفاده از مسیرهای مطلق، دقیقاً به همان صورت کپی می‌شوند\&. .SS "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-\-glob [=no] تفسیر آرگومان‌های فایل به عنوان الگوهای گلوب (glob patterns)\&. گلوبینگ بر پایه کاراکترهای عمومی استاندارد (wildcards) است با این تفاوت اضافه که \fB/**/\fP با هر تعداد دایرکتوری مطابقت دارد\&. نحو دقیق را در اینجا ببینید: \%\&. .UNINDENT .INDENT 0.0 .TP .B \-\-dest مقصد کپی در میزبان راه دور\&. مسیرهای نسبی نسبت به HOME در میزبان راه دور حل‌وفصل می‌شوند\&. هنگامی که این گزینه مشخص نشده باشد، مسیر فایل محلی به عنوان مقصد دوردست استفاده می‌شود (که در آن دایرکتوری HOME به طور خودکار با HOME راه دور جایگزین می‌گردد)\&. توجه داشته باشید که متغیرهای محیطی و ~ بسط داده نمی‌شوند\&. .UNINDENT .INDENT 0.0 .TP .B \-\-exclude یک الگوی گلوب\&. فایل‌هایی با نام‌های منطبق با این الگو از انتقال مستثنی می‌شوند\&. تنها هنگام کپی دایرکتوری‌ها استفاده می‌شود\&. می‌تواند چندین بار مشخص شود؛ اگر هر یک از الگوها تطبیق یابد فایل مستثنی خواهد شد\&. اگر الگو شامل یک \fB/\fP باشد، در برابر کل مسیر و نه تنها نام فایل سنجیده می‌شود\&. در چنین الگوهایی می‌توانید از \fB/**/\fP برای تطبیق صفر یا چند دایرکتوری استفاده کنید\&. برای مثال، برای مستثنی کردن یک دایرکتوری و هر آنچه زیر آن قرار دارد از \fB**/directory_name\fP استفاده نمایید\&. برای نحوه تطبیق کاراکترهای عمومی، نحو دقیق را در \% ببینید\&. .UNINDENT .INDENT 0.0 .TP .B \-\-symlink\-strategy کنترل رفتار برنامه در مواجهه با پیوند نمادین (symlink)\&. حالت پیش‌فرض حفظ پیوند نمادین و بازآفرینی مجدد آن در دستگاه دوردست است\&. تنظیم این گزینه روی \fBresolve\fP سبب می‌شود پیوند نمادین دنبال شده و هدف آن به عنوان فایل/دایرکتوری برای کپی استفاده شود\&. مقدار \fBkeep\-path\fP مانند \fBresolve\fP عمل می‌کند با این تفاوت که مسیر فایل راه دور به جای مسیر هدف پیوند نمادین، از مسیر خود پیوند نمادین مشتق می‌شود\&. توجه داشته باشید که این گزینه برای پیوندهای نمادینی که در طول کپی بازگشتی دایرکتوری‌ها با آن‌ها مواجه می‌شوید اعمال نمی‌شود، چرا که آن پیوندها همیشه حفظ می‌گردند\&. پیش‌فرض: \fBpreserve\fP انتخاب‌ها: \fBkeep\-path\fP, \fBpreserve\fP, \fBresolve\fP .UNINDENT .SH "کپی دستی فایل‌های terminfo (Copying terminfo files manually)" .sp گاهی ممکن است ssh kitten با خطا مواجه شود یا مایل به استفاده از آن نباشید\&. در چنین مواردی، فایل‌های terminfo را می‌توان به صورت دستی با دستور یک‌خطی زیر در سرور کپی نمود: .INDENT 0.0 .INDENT 3.5 .sp .EX infocmp \-a xterm\-kitty | ssh myserver tic \-x \-o \e~/.terminfo /dev/stdin .EE .UNINDENT .UNINDENT .sp اگر پشت یک پراکسی (مانند Balabit) هستید که مانع این کار می‌شود، یا به macOS وصل می‌شوید که در آن \fBtic\fP از خواندن از \fBSTDIN\fP پشتیبانی نمی‌کند، باید خروجی دستور اول را به یک فایل هدایت کنید، آن را به سرور منتقل کرده و \fBtic\fP را به صورت دستی اجرا نمایید\&. اگر به سروری متصل می‌شوید که embedded یا اندروید است و ابزار \fBtic\fP را ندارد، فایل terminfo محلی خود را به عنوان \fB~/.terminfo/x/xterm\-kitty\fP به سیستم دیگر کپی کنید\&. .sp اگر سرور از یک توزیع نسبتاً مدرن لینوکس استفاده می‌کند و دسترسی root به آن دارید، می‌توانید بسته \fBkitty\-terminfo\fP را به سادگی روی سرور نصب کنید تا فایل‌های terminfo در دسترس قرار گیرند\&. .sp در حقیقت، راهکار صحیح برای این موضوع این است که توسعه‌دهندگان OpenSSH متقاعد شوند که \fBssh\fP در صورت امکان هنگام اتصال به سرور این کار را به صورت خودکار انجام دهد تا تمامی ترمینال‌ها به شکلی شفاف کار کنند\&. .sp اگر سرور از FreeBSD یا سیستم دیگری استفاده می‌کند که به جای terminfo به termcap متکی است، باید فایل terminfo را در رایانه محلی خود با اجرای دستور زیر تبدیل کنید (روی رایانه محلی با \fIkitty\fP): .INDENT 0.0 .INDENT 3.5 .sp .EX infocmp \-CrT0 xterm\-kitty .EE .UNINDENT .UNINDENT .sp خروجی این دستور توصیف termcap است که باید به فایل \fB/usr/share/misc/termcap\fP در سرور راه دور افزوده شود\&. سپس دستور زیر را برای اعمال تغییرات خود (روی سرور) اجرا کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX cap_mkdb /usr/share/misc/termcap .EE .UNINDENT .UNINDENT .SH "نویسنده (AUTHOR)" Kovid Goyal .SH "حق نشر (COPYRIGHT)" 2026, Kovid Goyal .\" End of generated man page.