ssh - آنلاین در ابر

این دستور ssh است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


SSH - کلاینت OpenSSH SSH (برنامه ورود از راه دور)

خلاصه


SSH [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]بندر]
[-E ورود به سیستم فایل] [-e escape_char] [-F پیکربندی] [-I pkcs11] [-i هویت_فایل]
[-L نشانی] [-l نام ورود] [-m mac_spec] [-O ctl_cmd] [-o انتخاب] [-p بندر]
[-Q query_option] [-R نشانی] [-S ctl_path] [-W میزبان:بندر] [-w local_tun[:remote_tun]]
[کاربر@]نام میزبان [فرمان]

شرح


SSH (کلینت SSH) برنامه ای برای ورود به یک ماشین راه دور و برای اجرای دستورات است
روی یک ماشین از راه دور در نظر گرفته شده است که ارتباطات رمزگذاری شده ایمن بین این دو را فراهم کند
میزبان های نامعتبر از طریق یک شبکه ناامن اتصالات X11، پورت های دلخواه TCP و
سوکت های دامنه یونیکس نیز می توانند از طریق کانال امن ارسال شوند.

SSH متصل می شود و به قسمت مشخص شده وارد می شود نام میزبان (با اختیاری کاربر نام). کاربر باید
هویت خود را با استفاده از یکی از چندین روش به دستگاه راه دور ثابت کنید (به زیر مراجعه کنید).

If فرمان مشخص شده است، به جای پوسته ورود، روی میزبان راه دور اجرا می شود.

گزینه ها به شرح زیر است:

-1 نیروهای SSH فقط نسخه 1 پروتکل را امتحان کنید.

-2 نیروهای SSH فقط نسخه 2 پروتکل را امتحان کنید.

-4 نیروهای SSH فقط از آدرس های IPv4 استفاده کنید.

-6 نیروهای SSH فقط از آدرس های IPv6 استفاده کنید.

-A ارسال اتصال عامل احراز هویت را فعال می کند. این نیز می تواند باشد
بر اساس هر میزبان در یک فایل پیکربندی مشخص شده است.

ارسال نماینده باید با احتیاط فعال شود. کاربران با قابلیت دور زدن
مجوزهای فایل در میزبان راه دور (برای سوکت دامنه UNIX عامل) می تواند دسترسی داشته باشد
عامل محلی از طریق اتصال ارسال شده. مهاجم نمی تواند کلید را بدست آورد
مواد از عامل، با این حال آنها می توانند عملیات بر روی کلیدهای فعال انجام دهد
آنها را با استفاده از هویت های بارگذاری شده در عامل احراز هویت کنند.

-a ارسال اتصال عامل احراز هویت را غیرفعال می کند.

-b bind_address
استفاده کنید bind_address در ماشین محلی به عنوان آدرس منبع اتصال. فقط
در سیستم هایی با بیش از یک آدرس مفید است.

-C درخواست فشرده سازی همه داده ها (از جمله stdin، stdout، stderr، و داده ها برای
ارتباطات دامنه X11، TCP و UNIX ارسال شده است). الگوریتم فشرده سازی است
همان استفاده شده توسط از gzip(1)، و "سطح" را می توان توسط سطح فشرده سازی
گزینه برای پروتکل نسخه 1. فشرده سازی در خطوط مودم و غیره مطلوب است
اتصالات کند است، اما فقط سرعت کارها را در شبکه های سریع کاهش می دهد. پیشفرض
مقدار را می توان بر اساس میزبان به میزبان در فایل های پیکربندی تنظیم کرد. را ببینید
فشرده سازی گزینه.

-c cipher_spec
مشخصات رمز را برای رمزگذاری جلسه انتخاب می کند.

پروتکل نسخه 1 امکان تعیین یک رمز واحد را فراهم می کند. مقادیر پشتیبانی شده
"3des"، "blowfish" و "des" هستند. برای پروتکل نسخه 2، cipher_spec کاما است-
فهرست تفکیک شده از رمزهای فهرست شده به ترتیب اولویت. را ببینید رمزگذار کلمه کلیدی در
ssh_config(5) برای اطلاعات بیشتر

-D [bind_address:]بندر
یک حمل و نقل محلی در سطح برنامه "پویا" را مشخص می کند. این کار توسط
اختصاص دادن یک سوکت برای گوش دادن بندر در سمت محلی، به صورت اختیاری به
مشخص شده bind_address. هرگاه اتصالی به این پورت برقرار شود، اتصال
از طریق کانال ایمن ارسال می شود و سپس پروتکل برنامه مورد استفاده قرار می گیرد
تعیین کنید که از دستگاه راه دور به کجا وصل شوید. در حال حاضر SOCKS4 و
پروتکل های SOCKS5 پشتیبانی می شوند و SSH به عنوان یک سرور SOCKS عمل خواهد کرد. فقط روت می تواند
پورت های ممتاز فوروارد حمل و نقل پورت پویا نیز می تواند در آن مشخص شود
فایل پیکربندی.

آدرس های IPv6 را می توان با قرار دادن آدرس در پرانتز مشخص کرد. فقط
ابرکاربر می تواند پورت های ممتاز را ارسال کند. به طور پیش فرض، پورت محلی متصل است
مطابق با Gateway Ports تنظیمات. با این حال، صریح bind_address شاید
برای اتصال اتصال به یک آدرس خاص استفاده می شود. در bind_address از "localhost"
نشان می دهد که پورت گوش دادن فقط برای استفاده محلی محدود است، در حالی که خالی است
آدرس یا '*' نشان می دهد که پورت باید از همه رابط ها در دسترس باشد.

-E ورود به سیستم فایل
اضافه کردن گزارش های اشکال زدایی به ورود به سیستم فایل به جای خطای استاندارد

-e escape_char
کاراکتر escape را برای جلسات با pty تنظیم می کند (پیش فرض: '~'). فرار
کاراکتر فقط در ابتدای یک خط تشخیص داده می شود. شخصیت فرار
به دنبال آن یک نقطه ('.') اتصال را می بندد. به دنبال کنترل-Z به حالت تعلیق در می آید
ارتباط؛ و به دنبال خود کاراکتر فرار را یک بار ارسال می کند. تنظیم کردن
کاراکتر به "none" هرگونه فرار را غیرفعال می کند و جلسه را کاملاً شفاف می کند.

-F پیکربندی
یک فایل پیکربندی جایگزین برای هر کاربر را مشخص می کند. اگر یک فایل پیکربندی است
در خط فرمان، فایل پیکربندی کل سیستم (/ etc / ssh / ssh_config)
نادیده گرفته خواهد شد. پیش فرض فایل پیکربندی هر کاربر است ~ / .ssh / پیکربندی.

-f درخواست ها SSH برای رفتن به پس زمینه درست قبل از اجرای دستور. این مفید است اگر
SSH قرار است رمز عبور یا عبارت عبور را بخواهد، اما کاربر آن را در قسمت می خواهد
زمینه. این دلالت می کنه که -n. روش توصیه شده برای شروع برنامه های X11 از راه دور
سایت با چیزی شبیه به SSH -f میزبان xterm.

اگر ExitOnForwardFailure گزینه پیکربندی روی "بله" تنظیم شده است، سپس یک مشتری
شروع شده با -f منتظر خواهد ماند تا همه پورت های راه دور با موفقیت انجام شود
قبل از قرار دادن خود در پس زمینه ایجاد شده است.

-G علل SSH برای چاپ پیکربندی آن پس از ارزیابی میزبان و مسابقه بلوک و
خروج

-g به هاست های راه دور اجازه می دهد به پورت های فوروارد محلی متصل شوند. اگر روی مالتی پلکس استفاده شود
اتصال، سپس این گزینه باید در فرآیند اصلی مشخص شود.

-I pkcs11
کتابخانه مشترک PKCS#11 را مشخص کنید SSH باید برای برقراری ارتباط با PKCS#11 استفاده شود
رمزی که کلید RSA خصوصی کاربر را ارائه می دهد.

-i هویت_فایل
فایلی را انتخاب می کند که از آن هویت (کلید خصوصی) برای احراز هویت کلید عمومی است
خوانده می شود. پیش فرض است ~/.ssh/identity برای پروتکل نسخه 1 و ~/.ssh/id_dsa,
~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 و ~/.ssh/id_rsa برای پروتکل نسخه 2.
فایل های هویتی نیز ممکن است بر اساس هر میزبان در فایل پیکربندی مشخص شوند.
امکان چندتایی وجود دارد -i گزینه ها (و چندین هویت مشخص شده در
فایل های پیکربندی). اگر هیچ گواهی به صراحت توسط
CertificateFile بخشنامه، SSH همچنین سعی خواهد کرد اطلاعات گواهی را از
نام فایل به دست آمده با ضمیمه کردن -cert.pub به هویت نام فایل ها

-K احراز هویت و بازارسال (تخصیص) GSSAPI مبتنی بر GSSAPI را فعال می‌کند
اعتبار به سرور

-k ارسال (تفویض) اعتبارنامه های GSSAPI به سرور را غیرفعال می کند.

-L [bind_address:]بندر:میزبان:میزبان
-L [bind_address:]بندر:ریموت_سوکت
-L محلی_سوکت:میزبان:میزبان
-L محلی_سوکت:ریموت_سوکت
مشخص می کند که به پورت TCP داده شده یا سوکت یونیکس در محلی متصل می شود
هاست (مشتری) باید به هاست و پورت داده شده یا سوکت یونیکس بر روی آن ارسال شود
سمت راه دور این با اختصاص یک سوکت برای گوش دادن به هر یک از یک TCP کار می کند بندر on
سمت محلی، به صورت اختیاری به مشخص شده محدود می شود bind_address، یا به سوکت یونیکس.
هرگاه اتصالی به پورت یا سوکت محلی ایجاد شود، اتصال برقرار می شود
از طریق کانال امن ارسال می شود و به هر یک از آنها اتصال برقرار می شود میزبان بندر
میزبان، یا سوکت یونیکس ریموت_سوکت، از دستگاه از راه دور.

حمل و نقل پورت نیز می تواند در فایل پیکربندی مشخص شود. فقط
ابرکاربر می تواند پورت های ممتاز را ارسال کند. آدرس های IPv6 را می توان توسط
قرار دادن آدرس در پرانتز

به طور پیش فرض، پورت محلی مطابق با Gateway Ports تنظیم می باشد.
با این حال، صریح bind_address ممکن است برای اتصال اتصال به یک خاص استفاده شود
نشانی. این bind_address از "localhost" نشان می دهد که پورت گوش دادن محدود است
فقط برای استفاده محلی، در حالی که یک آدرس خالی یا '*' نشان می دهد که پورت باید باشد
در دسترس از تمام رابط ها

-l نام ورود
کاربر را مشخص می کند که به عنوان روی دستگاه راه دور وارد شود. این نیز ممکن است مشخص شود
بر اساس هر میزبان در فایل پیکربندی.

-M قرار می دهد SSH کلاینت به حالت "Master" برای اشتراک گذاری اتصال. چندگانه -M
مکان های گزینه ها SSH به حالت "master" با تایید قبل از Slave مورد نیاز است
اتصالات پذیرفته می شود به توضیحات مراجعه کنید کنترل مستر in
ssh_config(5) برای جزئیات.

-m mac_spec
فهرستی از الگوریتم های MAC (کد احراز هویت پیام) جدا شده با کاما، مشخص شده در
ترتیب اولویت را ببینید مکینتاش کلمه کلیدی برای اطلاعات بیشتر

-N یک فرمان از راه دور را اجرا نکنید. این فقط برای ارسال پورت ها مفید است.

-n stdin را تغییر مسیر می دهد / dev / null (در واقع از خواندن از stdin جلوگیری می کند). این باید
وقتی استفاده شود SSH در پس زمینه اجرا می شود. یک ترفند رایج استفاده از آن برای اجرای X11 است
برنامه های روی یک ماشین راه دور مثلا، SSH -n shadows.cs.hut.fi ایمکس & اراده
یک emacs را در shadows.cs.hut.fi شروع کنید و اتصال X11 به طور خودکار انجام می شود
از طریق یک کانال رمزگذاری شده ارسال می شود. در SSH برنامه در پس زمینه قرار خواهد گرفت.
(اگر این کار نمی کند SSH نیاز به درخواست رمز عبور یا عبارت عبور دارد. را نیز ببینید
-f گزینه.)

-O ctl_cmd
یک فرآیند اصلی چندگانه سازی اتصال فعال را کنترل کنید. وقتی که -O گزینه است
مشخص شده، ctl_cmd آرگومان تفسیر شده و به فرآیند اصلی منتقل می شود.
دستورات معتبر عبارتند از: "check" (بررسی کنید که فرآیند اصلی در حال اجرا است)، "Forward"
(درخواست ارسال بدون اجرای دستور)، "لغو" (لغو ارسال)،
"خروج" (از استاد درخواست کنید که خارج شود) و "توقف" (از استاد درخواست کنید که متوقف شود
پذیرش درخواست های مالتی پلکس بیشتر).

-o انتخاب
می توان از آن برای دادن گزینه هایی در قالب استفاده شده در فایل پیکربندی استفاده کرد. این هست
برای تعیین گزینه هایی که هیچ پرچم خط فرمان جداگانه ای برای آنها وجود ندارد مفید است. برای
جزئیات کامل گزینه های ذکر شده در زیر و مقادیر احتمالی آنها را ببینید
ssh_config(5).

AddKeysToAgent
آدرس خانواده
حالت دسته ای
BindAddress
Canonical Domains
CanonicalizeFallbackLocal
Canonicalize Hostname
CanonicalizeMaxDots
Canonicalize PermittedCNAMEs
CertificateFile
ChallengeResponse احراز هویت
CheckHostIP
رمزنگاری
رمزگذار
ClearAllForwardings
فشرده سازی
سطح فشرده سازی
تلاش های اتصال
ConnectTimeout
کنترل مستر
ControlPath
Control Persist
DynamicForward
EscapeChar
ExitOnForwardFailure
هش اثر انگشت
ForwardAgent
ForwardX11
ForwardX11 Timeout
ForwardX11 مورد اعتماد
Gateway Ports
GlobalKnownHostsFile
احراز هویت GSSAPIA
GSSAPIDتخصیص اعتبار
HashKnownHosts
میزبان
احراز هویت مبتنی بر میزبان
HostbasedKeypes
HostKey Algorithms
HostKeyAlias
نام میزبان
IdentityFile
Identities Only
IPQoS
KbdInteractiveAuthentication
KbdInteractiveDevices
الگوریتم های Kex
Local Command
LocalForward
LogLevel
مکینتاش
مسابقه
NoHostAuthenticationForLocalhost
NumberOfPassword Prompts
احراز هویت رمز عبور
PermitLocalCommand
ارائه دهنده PKCS11
بندر
PreferredAuthentications
پروتکل
ProxyCommand
ProxyUseFdpass
PubkeyAcceptedKeyTypes
PubkeyAuthentication
RekeyLimit
RemoteForward
درخواست TTY
احراز هویت RhostsRSAA
احراز هویت RSAA
SendEnv
ServerAliveInterval
ServerAliveCountMax
StreamLocalBindMask
StreamLocalBindUnlink
StrictHostKeyChecking
TCPKeepAlive
تونل
دستگاه تونل
UpdateHostKeys
UsePrivilegedPort
کاربر
UserKnownHostsFile
VerifyHostKeyDNS
VisualHostKey
XAuthLocation

-p بندر
پورت برای اتصال در میزبان راه دور. این را می توان بر اساس هر میزبان مشخص کرد
فایل پیکربندی

-Q query_option
پرس و جو SSH برای الگوریتم های پشتیبانی شده برای نسخه مشخص شده 2. موجود
ویژگی ها عبارتند از: رمز (رمزهای متقارن پشتیبانی شده)، رمز نگاری (متقارن پشتیبانی می شود
رمزهایی که از رمزگذاری تأیید شده پشتیبانی می کنند. مک (پشتیبانی از یکپارچگی پیام
کدها) kex (الگوریتم های تبادل کلید)، کلید (انواع کلیدی)، گواهی کلید (کلید گواهی
انواع) کلید ساده (انواع کلیدهای غیر گواهی) و پروتکل-نسخه (پشتیبانی از SSH
نسخه های پروتکل).

-q حالت بی صدا باعث می شود بیشتر پیام های هشدار و تشخیصی سرکوب شوند.

-R [bind_address:]بندر:میزبان:میزبان
-R [bind_address:]بندر:محلی_سوکت
-R ریموت_سوکت:میزبان:میزبان
-R ریموت_سوکت:محلی_سوکت
مشخص می کند که به پورت TCP داده شده یا سوکت یونیکس روی کنترل از راه دور متصل می شود
هاست (سرور) باید به هاست و پورت داده شده یا سوکت یونیکس بر روی آن ارسال شود
سمت محلی این با اختصاص یک سوکت برای گوش دادن به هر یک از یک TCP کار می کند بندر و یا به
یک سوکت یونیکس در سمت راه دور. هر زمان که اتصالی به این پورت یا
سوکت یونیکس، اتصال از طریق کانال امن و یک اتصال ارسال می شود
به هر دو ساخته شده است میزبان بندر میزبان، یا محلی_سوکت، از ماشین محلی.

حمل و نقل پورت نیز می تواند در فایل پیکربندی مشخص شود. پورت های ممتاز
فقط هنگام وارد شدن به عنوان root در دستگاه راه دور قابل ارسال است. آدرس های IPv6
را می توان با قرار دادن آدرس در پرانتز مشخص کرد.

به طور پیش فرض، سوکت های گوش دادن TCP روی سرور به حلقه بک متصل می شوند
فقط رابط این ممکن است با مشخص کردن a لغو شود bind_address. یک خالی
bind_address، یا آدرس "*" نشان می دهد که سوکت از راه دور باید به آن گوش دهد
همه اینترفیس ها تعیین یک کنترل از راه دور bind_address فقط در صورتی موفق خواهد شد که سرور باشد
Gateway Ports گزینه فعال است (نگاه کنید به sshd_config(5).

اگر بندر آرگومان '0' است، پورت گوش دادن به صورت پویا بر روی آن تخصیص می یابد
سرور و در زمان اجرا به مشتری گزارش می شود. هنگام استفاده همراه با -O رو به جلو
پورت اختصاص داده شده در خروجی استاندارد چاپ می شود.

-S ctl_path
محل یک سوکت کنترل برای اشتراک گذاری اتصال یا رشته را مشخص می کند
"هیچ" برای غیرفعال کردن اشتراک گذاری اتصال. به توضیحات مراجعه کنید ControlPath و
کنترل مستر in ssh_config(5) برای جزئیات.

-s ممکن است برای درخواست فراخوانی یک زیر سیستم در سیستم راه دور استفاده شود. زیر سیستم ها
تسهیل استفاده از SSH به عنوان یک انتقال امن برای سایر برنامه ها (مثلاً
sftp(1)). زیرسیستم به عنوان فرمان از راه دور مشخص می شود.

-T تخصیص شبه پایانه را غیرفعال کنید.

-t تخصیص شبه پایانه اجباری. از این می توان برای اجرای صفحه نمایش دلخواه استفاده کرد
برنامه های مبتنی بر یک ماشین راه دور، که می تواند بسیار مفید باشد، به عنوان مثال هنگام پیاده سازی
خدمات منو چندگانه -t گزینه ها تخصیص tty را مجبور می کنند، حتی اگر SSH محلی ندارد
tty

-V نمایش شماره نسخه و خروج.

-v حالت پرمخاطب. علل SSH برای چاپ پیام های اشکال زدایی در مورد پیشرفت آن. این هست
در اشکال زدایی اتصال، احراز هویت و مشکلات پیکربندی مفید است.
چندین -v گزینه ها پرحرفی را افزایش می دهند. حداکثر 3 است.

-W میزبان:بندر
درخواست می کند که ورودی و خروجی استاندارد روی مشتری به آن فوروارد شود میزبان on بندر
از طریق کانال امن دلالت دارد -N, -T, ExitOnForwardFailure و
ClearAllForwardings.

-w local_tun[:remote_tun]
درخواست ارسال دستگاه تونل با مشخص شده را دارد انجام(4) دستگاه بین
مشتری (local_tun) و سرور (remote_tun).

دستگاه ها ممکن است با شناسه عددی یا کلمه کلیدی "any" مشخص شوند که از آن استفاده می کند
دستگاه تونل موجود بعدی اگر remote_tun مشخص نشده است، به طور پیش فرض روی "any" تنظیم می شود.
همچنین ببینید تونل و دستگاه تونل بخشنامه ها در ssh_config(5). اگر تونل
دستورالعمل تنظیم نشده است، روی حالت پیش فرض تونل تنظیم شده است که "نقطه به نقطه" است.

-X ارسال X11 را فعال می کند. این را نیز می توان بر اساس هر میزبان در a مشخص کرد
فایل پیکربندی.

ارسال X11 باید با احتیاط فعال شود. کاربران با قابلیت دور زدن
مجوزهای فایل در میزبان راه دور (برای پایگاه داده مجوز X کاربر) می تواند
از طریق اتصال فوروارد شده به صفحه نمایش محلی X11 دسترسی پیدا کنید. پس از آن یک مهاجم ممکن است
قادر به انجام فعالیت هایی مانند نظارت بر ضربه زدن به کلید باشد.

به همین دلیل، حمل و نقل X11 تحت محدودیت های توسعه X11 SECURITY قرار دارد
به صورت پیش فرض. لطفا به SSH -Y گزینه و ForwardX11 مورد اعتماد رهنمود
in ssh_config(5) برای اطلاعات بیشتر

(ویژه دبیان: ارسال X11 تحت برنامه افزودنی X11 SECURITY نیست
محدودیت‌ها به‌طور پیش‌فرض، زیرا تعداد زیادی از برنامه‌ها در حال حاضر در این حالت خراب می‌شوند.
تنظیم کنید ForwardX11 مورد اعتماد گزینه "نه" برای بازیابی رفتار بالادست. این
ممکن است در آینده بسته به پیشرفت های سمت مشتری تغییر کند.)

-x ارسال X11 را غیرفعال می کند.

-Y بازارسال مورد اعتماد X11 را فعال می کند. فورواردهای مورد اعتماد X11 تحت این موارد قرار نمی گیرند
کنترل های برنامه افزودنی SECURITY X11.

(Debian-specific: این گزینه در تنظیمات پیش فرض هیچ کاری انجام نمی دهد: این است
معادل "ForwardX11 مورد اعتماد بله» که پیش‌فرض همانطور که در بالا توضیح داده شد است. تنظیم
la ForwardX11 مورد اعتماد گزینه "نه" برای بازیابی رفتار بالادست. این ممکن است
تغییر در آینده بسته به پیشرفت های سمت مشتری.)

-y ارسال اطلاعات ورود به سیستم با استفاده از syslog(3) ماژول سیستم. به طور پیش فرض این اطلاعات
به stderr ارسال می شود.

SSH ممکن است علاوه بر این، داده های پیکربندی را از یک فایل پیکربندی هر کاربر دریافت کند و a
فایل پیکربندی کل سیستم فرمت فایل و گزینه های پیکربندی در شرح داده شده است
ssh_config(5).

احراز هویت


کلاینت OpenSSH SSH از پروتکل های SSH 1 و 2 پشتیبانی می کند. پیش فرض استفاده از پروتکل 2 است.
فقط، اگرچه این را می توان از طریق تغییر داد پروتکل گزینه در ssh_config(5) یا -1 و -2
گزینه ها (به بالا مراجعه کنید). پروتکل 1 نباید استفاده شود و فقط برای پشتیبانی از میراث ارائه شده است
دستگاه ها از تعدادی ضعف رمزنگاری رنج می برد و بسیاری از آنها را پشتیبانی نمی کند
ویژگی های پیشرفته موجود برای پروتکل 2.

روش های موجود برای احراز هویت عبارتند از: احراز هویت مبتنی بر GSSAPI، مبتنی بر میزبان
احراز هویت، احراز هویت کلید عمومی، احراز هویت چالش-پاسخ و رمز عبور
احراز هویت. روش های احراز هویت به ترتیب مشخص شده در بالا امتحان می شوند
PreferredAuthentications می توان برای تغییر ترتیب پیش فرض استفاده کرد.

احراز هویت مبتنی بر میزبان به شرح زیر عمل می کند: اگر دستگاهی که کاربر از آن وارد شده است فهرست شده است.
in /etc/hosts.equiv or /etc/ssh/shosts.equiv در دستگاه راه دور، و نام های کاربری هستند
در هر دو طرف یکسان است، یا اگر فایل ها ~/.rhosts or ~/.شلات در خانه کاربر وجود دارد
دایرکتوری در ماشین راه دور و حاوی یک خط حاوی نام ماشین مشتری باشد
و نام کاربر در آن دستگاه، کاربر برای ورود در نظر گرفته می شود. علاوه بر این،
سرور باید بتوانید کلید میزبان مشتری را تأیید کنید (توضیحات را ببینید
/etc/ssh/ssh_known_hosts و ~/.ssh/known_hosts، در زیر) برای اجازه ورود به سیستم. این
روش احراز هویت حفره های امنیتی را به دلیل جعل IP، جعل DNS و مسیریابی می بندد.
جعل [توجه به مدیر: /etc/hosts.equiv, ~/.rhostsو rlogin/rsh
پروتکل به طور کلی، ذاتا ناامن هستند و در صورت تمایل به امنیت، باید غیرفعال شوند.]

احراز هویت کلید عمومی به شرح زیر است: این طرح بر اساس رمزنگاری کلید عمومی است.
با استفاده از سیستم های رمزنگاری که در آن رمزگذاری و رمزگشایی با استفاده از کلیدهای جداگانه انجام می شود، و همینطور است
استخراج کلید رمزگشایی از کلید رمزگذاری غیرممکن است. ایده این است که هر کاربر
یک جفت کلید عمومی/خصوصی برای اهداف احراز هویت ایجاد می کند. سرور عموم را می شناسد
کلید، و فقط کاربر کلید خصوصی را می داند. SSH احراز هویت کلید عمومی را پیاده سازی می کند
پروتکل به صورت خودکار، با استفاده از یکی از الگوریتم های DSA، ECDSA، Ed25519 یا RSA. تاریخ
بخش از اس اس ال(8) (در مورد سیستم های غیر OpenBSD، نگاه کنید به
http://www.openbsd.org/cgi-bin/man.cgi?query=ssl&sektion=8#HISTORY) حاوی خلاصه ای است
بحث در مورد الگوریتم های DSA و RSA

پرونده ~/.ssh/authorized_keys کلیدهای عمومی را که برای ورود به سیستم مجاز هستند فهرست می کند.
هنگامی که کاربر وارد سیستم می شود، SSH برنامه به سرور می گوید که از کدام جفت کلید می خواهد استفاده کند
برای احراز هویت مشتری ثابت می کند که به کلید خصوصی و سرور دسترسی دارد
بررسی می کند که کلید عمومی مربوطه مجاز به پذیرش حساب است.

کاربر جفت کلید خود را با اجرا ایجاد می کند ssh-keygen(1). این کلید خصوصی را در آن ذخیره می کند
~/.ssh/identity (پروتکل 1) ~/.ssh/id_dsa (DSA) ~/.ssh/id_ecdsa (ECDSA)
~/.ssh/id_ed25519 (Ed25519)، یا ~/.ssh/id_rsa (RSA) و کلید عمومی را در آن ذخیره می کند
~/.ssh/identity.pub (پروتکل 1) ~/.ssh/id_dsa.pub (DSA) ~/.ssh/id_ecdsa.pub (ECDSA)
~/.ssh/id_ed25519.pub (Ed25519)، یا . / .ssh / id_rsa.pub (RSA) در فهرست اصلی کاربر.
سپس کاربر باید کلید عمومی را در آن کپی کند ~/.ssh/authorized_keys در فهرست اصلی خود
روی دستگاه از راه دور در کلیدهای مجاز فایل مربوط به معمولی است ~/.rhosts
فایل، و دارای یک کلید در هر خط است، اگرچه خطوط می توانند بسیار طولانی باشند. پس از این، کاربر می تواند
بدون دادن رمز وارد شوید

یک تغییر در تأیید اعتبار کلید عمومی به شکل گواهی موجود است
احراز هویت: به جای مجموعه ای از کلیدهای عمومی/خصوصی، از گواهی های امضا شده استفاده می شود. این
این مزیت را دارد که می توان از یک مرجع صدور گواهینامه مورد اعتماد به جای بسیاری از آنها استفاده کرد
کلیدهای عمومی/خصوصی بخش CERTIFICATES را ببینید ssh-keygen(1) برای اطلاعات بیشتر

راحت ترین راه برای استفاده از کلید عمومی یا تأیید اعتبار گواهی ممکن است با یک
عامل احراز هویت دیدن عامل ssh(1) و (اختیاری) AddKeysToAgent بخشنامه در
ssh_config(5) برای اطلاعات بیشتر

احراز هویت چالش پاسخ به شرح زیر عمل می کند: سرور یک دلخواه ارسال می کند
متن "چالش" و درخواست پاسخ. نمونه هایی از احراز هویت چالش-پاسخ
شامل احراز هویت BSD (نگاه کنید به login.conf(5)) و PAM (برخی سیستم های غیر OpenBSD).

در نهایت، اگر سایر روش‌های احراز هویت با شکست مواجه شوند، SSH از کاربر یک رمز عبور می خواهد. در
رمز عبور برای بررسی به میزبان راه دور ارسال می شود. با این حال، از آنجایی که همه ارتباطات هستند
رمزگذاری شده است، رمز عبور توسط شخصی که در شبکه گوش می دهد قابل مشاهده نیست.

SSH به طور خودکار یک پایگاه داده حاوی شناسایی همه میزبان ها را نگهداری و بررسی می کند
تا به حال با استفاده شده است. کلیدهای میزبان در ذخیره می شوند ~/.ssh/known_hosts در خانه کاربر
فهرست راهنما. علاوه بر این، فایل /etc/ssh/ssh_known_hosts به طور خودکار بررسی می شود
میزبان های شناخته شده هر میزبان جدید به طور خودکار به فایل کاربر اضافه می شود. اگر میزبان
شناسایی همیشه تغییر می کند، SSH در مورد این هشدار می دهد و احراز هویت رمز عبور را غیرفعال می کند
از جعل سرور یا حملات Man-in-the-Middle جلوگیری کنید که در غیر این صورت می توان از آنها استفاده کرد
دور زدن رمزگذاری را StrictHostKeyChecking می توان از گزینه برای کنترل ورود به سیستم استفاده کرد
به ماشین هایی که کلید میزبان آن ها مشخص نیست یا تغییر کرده است.

هنگامی که هویت کاربر توسط سرور پذیرفته شد، سرور یا آن را اجرا می کند
در یک جلسه غیر تعاملی دستور داده می شود یا اگر دستوری مشخص نشده باشد، وارد می شود
دستگاه و یک پوسته معمولی به عنوان یک جلسه تعاملی به کاربر می دهد. تمام ارتباطات
با فرمان یا پوسته از راه دور به طور خودکار رمزگذاری می شود.

اگر یک جلسه تعاملی درخواست شود SSH به طور پیش فرض فقط یک شبه پایانه درخواست می کند
(pty) برای جلسات تعاملی زمانی که مشتری یکی دارد. پرچم ها -T و -t را می توان به استفاده
نادیده گرفتن این رفتار

اگر یک شبه پایانه اختصاص داده شده باشد، کاربر می تواند از کاراکترهای فرار ذکر شده در زیر استفاده کند.

اگر شبه پایانه ای اختصاص داده نشده باشد، جلسه شفاف است و می توان از آن استفاده کرد
انتقال قابل اعتماد داده های باینری در اکثر سیستم‌ها، تنظیم کاراکتر فرار روی «none» انجام می‌شود
حتی در صورت استفاده از tty، جلسه را شفاف کنید.

جلسه زمانی خاتمه می یابد که فرمان یا پوسته روی دستگاه راه دور خارج شود و تمام X11 و
اتصالات TCP بسته شده است.

فرار شخصیت ها


هنگامی که یک شبه پایانه درخواست شده است، SSH پشتیبانی از تعدادی از توابع از طریق
استفاده از شخصیت فرار

یک کاراکتر tilde می تواند به عنوان ارسال شود ~~ یا با دنبال کردن تار و مد توسط یک کاراکتر دیگر
نسبت به مواردی که در زیر توضیح داده شده است. شخصیت فرار همیشه باید از یک خط جدید پیروی کند
خاص تعبیر می شود. کاراکتر escape را می توان با استفاده از فایل های پیکربندی تغییر داد
la EscapeChar دستورالعمل پیکربندی یا در خط فرمان توسط -e گزینه.

Escape های پشتیبانی شده (با فرض پیش فرض '~') عبارتند از:

~. قطع شدن.

~^Z زمینه SSH.

~# اتصالات فوروارد شده را فهرست کنید.

~& زمینه SSH در هنگام خروج از سیستم هنگام انتظار برای اتصال ارسال شده / جلسات X11 به
خاتمه دادن.

~? نمایش لیستی از کاراکترهای فرار

~B یک BREAK به سیستم راه دور ارسال کنید (فقط در صورتی مفید است که همتا از آن پشتیبانی کند).

~C خط فرمان را باز کنید در حال حاضر این اجازه می دهد تا حمل و نقل پورت با استفاده از
-L, -R و -D گزینه ها (به بالا مراجعه کنید). همچنین اجازه لغو موجود را می دهد
پورت فورواردینگ با -KL[bind_address:]بندر برای محلی، -KR[bind_address:]بندر برای
از راه دور و -KD[bind_address:]بندر برای حمل و نقل پورت پویا !فرمان اجازه می دهد تا
کاربر برای اجرای یک فرمان محلی در صورتی که PermitLocalCommand گزینه در فعال است
ssh_config(5). کمک اولیه در دسترس است، با استفاده از -h گزینه.

~R درخواست کلید مجدد اتصال (فقط در صورتی مفید است که همتا از آن پشتیبانی کند).

~V پرحرفی را کم کنید (LogLevel) هنگامی که خطاها در stderr نوشته می شوند.

~v پرحرفی را افزایش دهید (LogLevel) هنگامی که خطاها در stderr نوشته می شوند.

TCP حمل و نقل


حمل و نقل اتصالات TCP دلخواه از طریق کانال امن می تواند مشخص شود
خط فرمان یا در یک فایل پیکربندی. یکی از کاربردهای احتمالی ارسال TCP این است
اتصال ایمن به سرور پست الکترونیکی؛ دیگری از فایروال ها عبور می کند.

در مثال زیر، ما به رمزگذاری ارتباطات بین مشتری و سرور IRC نگاه می کنیم.
حتی اگر سرور IRC مستقیماً از ارتباطات رمزگذاری شده پشتیبانی نمی کند. این کارها
به صورت زیر: کاربر با استفاده از هاست راه دور متصل می شود SSH، مشخص کردن یک پورت برای استفاده
اتصالات ارسال به سرور راه دور پس از آن امکان شروع سرویس وجود دارد
که قرار است روی ماشین کلاینت رمزگذاری شود و به همان پورت محلی متصل شود و SSH
اتصال را رمزگذاری و فوروارد می کند.

مثال زیر یک جلسه IRC را از ماشین کلاینت "127.0.0.1" (localhost) تونل می کند.
سرور راه دور "server.example.com":

$ ssh -f -L 1234:localhost:6667 server.example.com sleep 10
$ irc -c '#users' -p 1234 pinky 127.0.0.1

این یک تونل اتصال به سرور IRC "server.example.com"، پیوستن به کانال "#users"،
نام مستعار "pinky"، با استفاده از پورت 1234. مهم نیست که از کدام پورت استفاده شود، تا زمانی که از آن استفاده شود
بیشتر از 1023 (به یاد داشته باشید، فقط root می تواند سوکت ها را در پورت های ممتاز باز کند) و این کار را نمی کند
در تضاد با هر پورت در حال حاضر استفاده شده است. اتصال به پورت 6667 در
سرور راه دور، زیرا این پورت استاندارد برای خدمات IRC است.

La -f پس زمینه های گزینه SSH و فرمان از راه دور "sleep 10" برای اجازه دادن به یک مشخص شده است
مقدار زمان (در مثال 10 ثانیه) برای شروع سرویسی که قرار است تونل شود.
اگر هیچ اتصالی در مدت زمان مشخص شده انجام نشود، SSH خارج خواهد شد

X11 حمل و نقل


اگر ForwardX11 متغیر روی "بله" تنظیم شده است (یا توضیحات مربوطه را ببینید -X, -xو -Y
گزینه های بالا) و کاربر از X11 استفاده می کند (متغیر محیط DISPLAY تنظیم شده است)،
اتصال به صفحه نمایش X11 به طور خودکار به سمت راه دور به این ترتیب ارسال می شود
که هر برنامه X11 که از پوسته (یا فرمان) شروع شده باشد، از طریق رمزگذاری شده عبور خواهد کرد
کانال، و اتصال به سرور X واقعی از ماشین محلی انجام خواهد شد. در
کاربر نباید DISPLAY را به صورت دستی تنظیم کند. هدایت اتصالات X11 را می توان روی پیکربندی کرد
خط فرمان یا در فایل های پیکربندی.

مقدار DISPLAY تنظیم شده توسط SSH به دستگاه سرور اشاره خواهد کرد، اما با یک شماره نمایشگر
بزرگتر از صفر این طبیعی است و به این دلیل اتفاق می افتد SSH یک سرور X "پروکسی" روی آن ایجاد می کند
ماشین سرور برای ارسال اتصالات از طریق کانال رمزگذاری شده.

SSH همچنین به طور خودکار داده های Xauthority را در دستگاه سرور تنظیم می کند. به این منظور،
یک کوکی مجوز تصادفی ایجاد می کند، آن را در Xauthority روی سرور ذخیره می کند و
بررسی کنید که اتصالات ارسال شده حاوی این کوکی باشد و آن را با کوکی واقعی جایگزین کنید
وقتی اتصال باز شد کوکی احراز هویت واقعی هرگز به سرور ارسال نمی شود
دستگاه (و هیچ کوکی در ساده ارسال نمی شود).

اگر ForwardAgent متغیر روی "بله" تنظیم شده است (یا توضیحات مربوطه را ببینید -A و -a
گزینه های بالا) و کاربر از یک عامل احراز هویت استفاده می کند، اتصال به عامل است
به طور خودکار به سمت راه دور ارسال می شود.

در حال تأیید HOST کلیدها


هنگام اتصال به سرور برای اولین بار، اثر انگشت کلید عمومی سرور است
به کاربر ارائه می شود (مگر اینکه گزینه StrictHostKeyChecking غیر فعال شده است).
اثر انگشت را می توان با استفاده از ssh-keygen(1):

$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

اگر اثر انگشت قبلا شناخته شده باشد، می توان آن را مطابقت داد و کلید را می توان پذیرفت یا
رد شد. اگر فقط اثر انگشت قدیمی (MD5) برای سرور موجود باشد، ssh-keygen(1)
-E گزینه ممکن است برای کاهش رتبه الگوریتم اثر انگشت برای مطابقت استفاده شود.

به دلیل دشواری مقایسه کلیدهای میزبان فقط با نگاه کردن به رشته های اثر انگشت،
همچنین پشتیبانی برای مقایسه کلیدهای میزبان به صورت بصری، با استفاده از تصادفی هنر. با تنظیم
VisualHostKey گزینه "بله"، یک گرافیک ASCII کوچک در هر ورود به a نمایش داده می شود
سرور، مهم نیست که جلسه خود تعاملی است یا نه. با یادگیری الگوی الف
سرور شناخته شده تولید می کند، کاربر به راحتی می تواند متوجه شود که کلید میزبان تغییر کرده است
الگوی کاملا متفاوت نمایش داده می شود. زیرا این الگوها بدون ابهام نیستند
با این حال، الگویی که شبیه به الگوی به یاد مانده به نظر می رسد، فقط یک نتیجه خوب می دهد
احتمال اینکه کلید میزبان یکسان باشد، اثبات تضمین شده نیست.

برای دریافت فهرستی از اثر انگشت ها به همراه هنر تصادفی آنها برای همه میزبان های شناخته شده،
از خط فرمان زیر می توان استفاده کرد:

$ ssh-keygen -lv -f ~/.ssh/known_hosts

اگر اثر انگشت ناشناخته باشد، روش دیگری برای تأیید در دسترس است: SSH
اثر انگشت تایید شده توسط DNS یک رکورد منبع اضافی (RR)، SSHFP، به a اضافه می شود
zonefile و مشتری متصل می‌تواند اثر انگشت را با کلید مطابقت دهد
ارایه شده.

در این مثال، ما یک کلاینت را به یک سرور، "host.example.com" وصل می کنیم. SSHFP
رکوردهای منبع ابتدا باید به zonefile برای host.example.com اضافه شوند:

$ ssh-keygen -r host.example.com.

خطوط خروجی باید به zonefile اضافه شوند. برای بررسی اینکه منطقه در حال پاسخگویی است
سوالات اثر انگشت:

$ dig -t SSHFP host.example.com

در نهایت مشتری متصل می شود:

$ ssh -o "VerifyHostKeyDNS ask" host.example.com
[...]
اثر انگشت کلید میزبان منطبق در DNS یافت شد.
آیا مطمئن هستید که میخواهید اتصال را ادامه دهید (بله / خیر)؟

مشاهده VerifyHostKeyDNS گزینه در ssh_config(5) برای اطلاعات بیشتر

مبتنی بر SSH VIRTUAL خصوصی شبکه های


SSH شامل پشتیبانی از تونل زنی شبکه خصوصی مجازی (VPN) با استفاده از انجام(4) شبکه
شبه دستگاه، اجازه می دهد تا دو شبکه به طور ایمن به هم متصل شوند. در sshd_config(5)
گزینه پیکربندی مجوز تونل کنترل می کند که آیا سرور از این پشتیبانی می کند یا خیر
سطح (ترافیک لایه 2 یا 3).

مثال زیر شبکه مشتری 10.0.50.0/24 را به شبکه راه دور متصل می کند
10.0.99.0/24 با استفاده از اتصال نقطه به نقطه از 10.1.1.1 تا 10.1.1.2، مشروط بر اینکه
سرور SSH در حال اجرا در دروازه به شبکه راه دور، در 192.168.1.15، این اجازه را می دهد.

در مورد مشتری:

# ssh -f -w 0:1 192.168.1.15 درست است
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2

روی سرور:

# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1

دسترسی مشتری ممکن است با دقت بیشتری تنظیم شود /root/.ssh/authorized_keys فایل (به زیر مراجعه کنید)
و ورود به سیستم گزینه سرور ورودی زیر به اتصالات اجازه می دهد
انجام(4) دستگاه 1 از کاربر "جین" و در دستگاه تون 2 از کاربر "جان"، اگر ورود به سیستم is
روی "فقط دستورات اجباری" تنظیم کنید:

tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... جان

از آنجایی که یک راه‌اندازی مبتنی بر SSH مستلزم مقدار زیادی سربار است، ممکن است مناسب‌تر باشد
تنظیمات موقت، مانند VPN های بی سیم. VPN های دائمی بیشتر توسط بهتر ارائه می شوند
ابزارهایی مانند ipsecctl(8) و isakmpd(8).

محیط زیست


SSH معمولاً متغیرهای محیطی زیر را تنظیم می کند:

DISPLAY متغیر DISPLAY مکان سرور X11 را نشان می دهد. این است
به طور خودکار توسط SSH برای اشاره به مقداری از فرم "hostname:n"،
که در آن "hostname" نشان دهنده میزبانی است که پوسته در آن اجرا می شود و 'n' است
یک عدد صحیح ≥ 1. SSH از این مقدار ویژه برای ارسال X11 استفاده می کند
اتصالات از طریق کانال امن کاربر معمولاً نباید تنظیم کند
به صراحت نمایش دهید، زیرا اتصال X11 را ناامن می کند
(و کاربر را ملزم می کند تا هر مجوز لازم را به صورت دستی کپی کند
کلوچه ها).

HOME مسیر فهرست اصلی کاربر را تنظیم کنید.

LOGNAME مترادف برای USER. تنظیم برای سازگاری با سیستم هایی که از این استفاده می کنند
متغیر.

MAIL مسیر صندوق پستی کاربر را تنظیم کنید.

PATH همانطور که در هنگام کامپایل مشخص شده است، روی PATH پیش فرض تنظیم کنید SSH.

SSH_ASKPASS اگر SSH به یک رمز عبور نیاز دارد، آن عبارت عبور را از روی می خواند
ترمینال فعلی اگر از ترمینال اجرا شده باشد. اگر SSH ندارد
یک ترمینال مرتبط با آن اما DISPLAY و SSH_ASKPASS تنظیم شده اند، آن را
برنامه مشخص شده توسط SSH_ASKPASS را اجرا می کند و X11 را باز می کند
پنجره ای برای خواندن عبارت عبور این به ویژه زمانی مفید است که
فراخوانی SSH از xsession یا اسکریپت مرتبط (توجه داشته باشید که در برخی
ممکن است لازم باشد ورودی را از ماشین ها تغییر مسیر دهید / dev / null به
این کار را انجام دهید.)

SSH_AUTH_SOCK مسیر یک سوکت دامنه یونیکس را که برای برقراری ارتباط با
عامل

SSH_CONNECTION کلاینت و سرور انتهای اتصال را شناسایی می کند. متغیر
شامل چهار مقدار از هم جدا شده از فضا است: آدرس IP مشتری، پورت مشتری
شماره، آدرس IP سرور و شماره پورت سرور.

SSH_ORIGINAL_COMMAND این متغیر حاوی خط فرمان اصلی در صورت دستور اجباری است
اجرا می شود. می توان از آن برای استخراج آرگومان های اصلی استفاده کرد.

SSH_TTY این به نام tty (مسیر به دستگاه) مرتبط تنظیم می شود
با پوسته یا دستور فعلی. اگر جلسه فعلی tty نداشته باشد،
این متغیر تنظیم نشده است.

TZ این متغیر برای نشان دادن منطقه زمانی فعلی در صورت تنظیم تنظیم شده است
زمانی که دیمون شروع شد (یعنی دیمون مقدار را به
اتصالات جدید).

USER روی نام کاربری که وارد می شود تنظیم کنید.

علاوه بر این، SSH می خواند ~/.ssh/environment، و خطوطی با فرمت "VARNAME=value" را به آن اضافه می کند
محیط اگر فایل موجود باشد و کاربران مجاز به تغییر محیط خود باشند. برای
اطلاعات بیشتر را ببینید PermitUserEnvironment گزینه در sshd_config(5).

با استفاده از خدمات onworks.net از ssh آنلاین استفاده کنید



جدیدترین برنامه های آنلاین لینوکس و ویندوز