از طریق SSH و SFTP به سرور مجازی متصل شوید. اتصال به سرور از طریق SSH و SFTP اتصال از طریق ssh از طریق putty

SSH چیست و چرا به آن نیاز دارید؟

پوسته امن (SSH) است پروتکل شبکه، عملکردهای پوسته را در یک ماشین راه دور از طریق یک کانال امن ارائه می دهد. SSH با پیشرفت‌های امنیتی مختلفی از جمله احراز هویت کاربر/میزبان، رمزگذاری داده‌ها و یکپارچگی داده‌ها ارائه می‌شود، که حملات محبوبی مانند استراق سمع، جعل DNS/IP، جعل داده‌ها و ربودن ارتباط را غیرممکن می‌کند. کاربران Ftp، telnet یا rlogin که از پروتکلی که داده ها را به صورت متن واضح منتقل می کند، برای تغییر به SSH بسیار توصیه می شود.

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

بسته های سرور/کلینت OpenSSH با ابزارهای زیر ارائه می شوند:

  • سرور OpenSSH: sshd (شیب SSH)
  • کلاینت OpenSSH: scp (کپی از راه دور امن)، sftp (انتقال امن فایل)، slogin/ssh (ورود از راه دور امن)، ssh-add (تکمیل کلید خصوصی)، ssh-agent (عامل احراز هویت)، ssh-keygen (مدیریت کلید احراز هویت ).
نصب سرور و کلاینت OpenSSH در لینوکس

اگر می‌خواهید سرور/کلینت OpenSSH را نصب کنید و سرور OpenSSH را برای شروع خودکار پیکربندی کنید، دستورالعمل‌های زیر را دنبال کنید که بسته به توزیع متفاوت است.

دبیان، اوبونتو یا لینوکس مینت

$ sudo apt-get نصب openssh-server openssh-client

در سیستم های مبتنی بر دبیان، پس از نصب، OpenSSH به طور خودکار در هنگام بوت شروع می شود. اگر به دلایلی سرور OpenSSH به طور خودکار هنگام راه‌اندازی سیستم راه‌اندازی نمی‌شود، می‌توانید دستور زیر را برای افزودن صریح ssh به بوت در هنگام راه‌اندازی سیستم اجرا کنید.

$ sudo update-rc.d پیش فرض ssh

فدورا یا CentOS/RHEL 7

$ sudo yum -y نصب openssh-server openssh-clients $ sudo systemctl شروع سرویس sshd $ sudo systemctl فعال کردن sshd.service

CentOS/RHEL 6

$ sudo yum -y نصب openssh-server openssh-clients $ sudo service sshd شروع $ sudo chkconfig sshd در

آرچ لینوکس

$ sudo pacman -Sy openssh $ sudo systemctl شروع سرویس sshd $ sudo systemctl فعال کردن sshd.service

راه اندازی سرور OpenSSH

اگر می‌خواهید سرور OpenSSH را پیکربندی کنید، می‌توانید فایل پیکربندی کل سیستم واقع در /etc/ssh/sshd_config را ویرایش کنید.

چند گزینه OpenSSH وجود دارد که ممکن است جالب باشد:
به طور پیش فرض، sshd در پورت 22 گوش می دهد و برای اتصالات ssh ورودی گوش می دهد. با تغییر پورت پیش فرض ssh می توانید از حملات هکرهای خودکار مختلف جلوگیری کنید.
اگر دستگاه شما بیش از یک رابط فیزیکی شبکه دارد، ممکن است بخواهید بررسی کنید که کدام یک با sshd مرتبط است، برای این کار می توانید از گزینه ListenAddress استفاده کنید. این گزینه با محدود کردن SSH ورودی فقط به یک رابط خاص به بهبود امنیت کمک می کند.

HostKey /etc/ssh/ssh_host_key

گزینه HostKey تعیین می کند که کلید میزبان شخصی در کجا قرار دارد.

PermitRootLogin شماره

گزینه PermitRootLogin – آیا ریشه می تواند از طریق ssh وارد سیستم شود یا خیر.

AllowUsers آلیس باب

با استفاده از گزینه AllowUsers می توانید به طور انتخابی سرویس ssh را برای کاربران خاص لینوکس غیرفعال کنید. می توانید چندین کاربر را که با فاصله از هم جدا شده اند مشخص کنید.

پس از تغییر /etc/ssh/sshd_config، مطمئن شوید که سرویس ssh را مجددا راه اندازی کنید.

برای راه اندازی مجدد OpenSSH در دبیان، اوبونتو یا لینوکس مینت:

$ sudo /etc/init.d/ssh راه اندازی مجدد

برای راه اندازی مجدد OpenSSH در فدورا، CentOS/RHEL 7 یا Arch Linux:

$ sudo systemctl sshd.service را راه اندازی مجدد کنید

برای راه اندازی مجدد OpenSSH در CentOS/RHEL 6:

سرویس sudo $ sshd راه اندازی مجدد

نحوه اتصال به SSH

اتصال به SSH از لینوکس

کاربران لینوکس نیازی به نصب برنامه های اضافی ندارند.

اتصال به SSH از ویندوز

از مهمانان پنهان شده است

.

Cygwin چیزی بیش از یک کلاینت SSH است. این یک ترکیب کننده قدرتمند است که از بسیاری از دستورات لینوکس پشتیبانی می کند. به عنوان مثال، Cygwin ایجاد گواهینامه های SSL را بسیار آسان می کند (درست مانند لینوکس). در ویندوز، برای ایجاد گواهینامه های خودامضا، باید با یک تنبور برقصید. Cygwin برای استفاده از cURL بسیار راحت است (نیازی به نصب جداگانه چیزی نیست) و غیره. کسانی که آن را در ویندوز ندارند. خط فرمانو برنامه های لینوکس یک خروجی در Cygwin پیدا می کنند.

نصب Cygwin آسان است. برویم به

از مهمانان پنهان شده است

و دانلود کنید

از مهمانان پنهان شده است

از مهمانان پنهان شده است

یک فایل کوچک دانلود می شود - این نصب کننده است. نصب کننده گرافیکی اگرچه شامل تعداد زیادی گزینه است، اما همه آنها کاملاً ساده هستند و بسیاری از آنها از سایر نصب کننده های گرافیکی آشنا هستند. اگر چیزی واضح نیست، فقط روی "بعدی" کلیک کنید. شاید تنها پنجره زیر می تواند منجر به سردرگمی شود:

تمام عناصر موجود برای نصب در اینجا ارائه شده است. فعلا نیازی به درک آنها نداریم. زیرا محبوب ترین ها قبلاً برای نصب علامت گذاری شده اند. و اگر چیزی در آینده گم شد، می توانید به راحتی آنچه را که نیاز دارید نصب کنید.

اتصال SSH (متداول در لینوکس و ویندوز)

کاربران لینوکس کنسول را باز می کنند، کاربران ویندوز Cygwin را تایپ می کنند.

SSH برای اتصال به اطلاعات زیر نیاز دارد:

  • IP یا نام میزبان
  • شماره پورت
  • نام کاربری
  • رمز عبور کاربر
دو مورد از این پارامترها SSH می تواند حدس بزند: نام کاربری و شماره پورت. اگر یک پورت مشخص نشده باشد، پورت پیش فرض در نظر گرفته می شود. اگر کاربری مشخص نشده باشد، از همان نامی استفاده می شود که در سیستمی که اتصال از آن برقرار شده است. به عنوان مثال، آدرس میزبان برای اتصال 192.168.1.36 است. اگر شماره بگیرم

Ssh 192.168.1.36

من موارد زیر را می بینم

Alex@MiAl-PC ~ $ ssh 192.168.1.36 اصالت هاست "192.168.1.36 (192.168.1.36)" را نمی توان تعیین کرد. اثر انگشت کلید ECDSA SHA256:sIxZeSuiivoAQSH500Y است. می خواهید به اتصال ادامه دهید ( بله خیر)؟

از آنجایی که من برای اولین بار به هاست متصل می شوم، میزبان ناآشنا است. آنها از من می پرسند که آیا می خواهم ادامه دهم؟ دارم شماره میگیرم آره:

هشدار: "192.168.1.36" (ECDSA) برای همیشه به لیست میزبان های شناخته شده اضافه شد. [ایمیل محافظت شده]رمز عبور "s:

بسیار خوب، هاست 192.168.1.36 به لیست هاست های آشنا اضافه شده است. از من یک رمز عبور برای کاربر Alex خواسته شده است. چون چنین کاربری روی سرور با SSH وجود نداره ولی کلیک میکنم Ctrl+C(to break) و دستور را به همراه نام کاربری سیستم ریموت وارد کنید. کاربر قبل از آدرس دستگاه راه دور وارد می شود و با علامت @ از آدرس جدا می شود. نماد @ در انگلیسی به صورت در خوانده می شود و می تواند به عنوان "in" ترجمه شود. آن ها رکورد [ایمیل محافظت شده]را می توان به عنوان "user mial on machine 192.168.1.36" تفسیر کرد.

Ssh [ایمیل محافظت شده]

دعوتنامه Alex@MiAl-PC با دعوتنامه mial@mint جایگزین شد. این بدان معنی است که ما قبلاً روی دستگاه راه دور هستیم، یعنی قبلاً یک اتصال برقرار کرده ایم. اگر شما نیاز به تعیین یک پورت دارید (اگر با پورت استاندارد متفاوت است)، پورت باید بعد از سوئیچ -p مشخص شود. به عنوان مثال مانند این:

Ssh [ایمیل محافظت شده]-p 10456

پس از اتصال، با چیزی شبیه به این استقبال می‌شویم:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 برنامه های موجود در سیستم گنو/لینوکس دبیان نرم افزار رایگان هستند. شرایط توزیع دقیق برای هر برنامه در فایل های جداگانه در /usr/share/doc/*/copyright توضیح داده شده است. دبیان گنو/لینوکس مطلقاً بدون ضمانت، تا حدی که توسط قانون قابل اجرا مجاز است، ارائه می‌شود. آخرین ورود: سه شنبه 16 ژوئن 15:32:25 2015 از 192.168.1.35

نتیجه این است که دستگاه راه دور Linux Mint با هسته 3.16 نسخه 64 بیتی است. همچنین اطلاعات مهمدر مورد زمان آخرین ورود و آدرس IP که اتصال از آن رخ داده است. اگر زمان و IP برای شما ناآشنا است و تنها کاربر هستید، سیستم شما به خطر افتاده است و باید اقدامات لازم را انجام دهید.

بیایید چند دستور را تایپ کنیم تا مطمئن شویم کجا هستیم و کی هستیم: pwd، [B]uname -aو غیره.:

برای پایان دادن به جلسه (خروج از سیستم)، شماره گیری کنید

یا کلیک کنید Ctrl+D.

بدون وارد کردن رمز عبور به SSH وارد شوید

اولا، این فقط راحت تر است. دوم اینکه ایمن تر است.

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

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

Ssh-keygen -t rsa

از ما نام فایل خواسته می شود، نیازی به وارد کردن چیزی نیست، از نام پیش فرض استفاده می شود. همچنین رمز عبور می خواهد. رمز را وارد نمی کنم

اکنون در دستگاه راه دور باید یک دایرکتوری .ssh ایجاد کنیم. اجرای دستور بر روی یک ماشین راه دور در زیر مورد بحث قرار خواهد گرفت. در حال حاضر، فقط دستور را کپی کنید، فراموش نکنید که آدرس IP و نام کاربری را به خود تغییر دهید:

Ssh [ایمیل محافظت شده] mkdir.ssh

اکنون باید محتویات فایل id_rsa.pub را در دستگاه راه دور کپی کنیم. انجام این کار بسیار آسان است (فراموش نکنید که داده ها را به خودتان تغییر دهید):

Cat .ssh/id_rsa.pub | ssh [ایمیل محافظت شده]"cat >> .ssh/authorized_keys"

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

اجرای دستورات روی سرور راه دور بدون ایجاد جلسه پوسته

علاوه بر باز کردن یک جلسه پوسته در یک سیستم راه دور، ssh همچنین به شما اجازه می دهد تا دستورات فردی را در سیستم راه دور اجرا کنید. به عنوان مثال، برای اجرای فرمان درختی روی یک میزبان راه دور به نام remote-sys و نمایش نتایج در سیستم محلی، این کار را انجام دهید:

درخت Ssh remote-sys

مثال واقعی من:

Ssh [ایمیل محافظت شده]درخت

با استفاده از این تکنیک می توانید کارهای جالبی انجام دهید، مانند اجرای دستور ls در یک سیستم راه دور و تغییر مسیر خروجی به یک فایل در سیستم محلی:

Ssh remote-sys "ls *" > dirlist.txt

مثال واقعی:

Ssh [ایمیل محافظت شده]"ls *" > dirlist.txt cat dirlist.txt

به تک نقل قول ها در دستور بالا توجه کنید. این کار به این دلیل انجام می شود که ما نمی خواهیم توسعه مسیر در آن انجام شود ماشین محلی; زیرا ما به این اجرا در یک سیستم راه دور نیاز داریم. همچنین، اگر بخواهیم خروجی استاندارد را به فایلی در دستگاه راه دور هدایت کنیم، می‌توانیم دستور تغییر مسیر و نام فایل را در داخل نقل قول‌های تکی قرار دهیم:

Ssh remote-sys "ls * > dirlist.txt"

انتقال خروجی استاندارد از ماشین محلی به ماشین راه دور از طریق ssh

یک گزینه به همان اندازه جالب برای اجرای دستورات کمی بالاتر داده شده است:

Cat .ssh/id_rsa.pub | ssh [ایمیل محافظت شده]"cat >> .ssh/authorized_keys"

  • دستور cat خط به خط می خواند و محتویات فایل .ssh/id_rsa.pub واقع در ماشین محلی را نمایش می دهد.
  • | (لوله) آنچه را که در خروجی استاندارد ظاهر می شود به دستور دیگری منتقل می کند.
  • به جای دستوری که رشته های ارسال شده به آن را پردازش کند، یک اتصال به سیستم راه دور (ssh) ایجاد می شود. [ایمیل محافظت شده]).
  • بر سیستم از راه دورخطوطی می رسند که دستور cat >> .ssh/authorized_keys برای آنها ارائه می شود. آن ها محتویات خروجی استاندارد خط به خط در فایل .ssh/authorized_keys واقع در دستگاه راه دور نوشته می شود.
باز کردن یک برنامه گرافیکی واقع در یک کامپیوتر راه دور

ترفند بعدی به دو کامپیوتر لینوکس نیاز دارد. متأسفانه حتی Cygwin هم نمی تواند از پس این ترفند بر بیاید. علاوه بر این، هر دو سیستم لینوکس باید یک رابط کاربری گرافیکی داشته باشند.

تونل سازی با SSH

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

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

شاید رایج ترین مورد استفاده از این ویژگی ها، قابلیت پخش ترافیک سیستم های X Window باشد. در سیستمی که یک سرور X را اجرا می کند (اینها ماشین هایی هستند که رابط کاربری گرافیکی دارند)، می توان یک برنامه مشتری X (برنامه گرافیکی) را روی سیستم راه دور اجرا کرد و نتایج عملکرد آن را در سیستم محلی مشاهده کرد. انجام آن آسان است. مثلا میخوام به ریموت هاست remote-sys وصل بشم و روی اون برنامه xload رو اجرا کنم. در عین حال می توانم خروجی گرافیکی این برنامه را روی کامپیوتر محلی ببینم. این کار به این صورت انجام می شود:

Ssh -X remote-sys xload

مثال واقعی:

Ssh -X [ایمیل محافظت شده] gedit

آن ها SSH با سوئیچ -X شروع می شود. و سپس برنامه به سادگی شروع می شود. به اسکرین شات نگاه کنید.

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

نحوه انتقال تصویر از کل دسکتاپ را بعداً در همان مقاله، در بخش «نحوه پیکربندی VNC از طریق SSH» یاد خواهید گرفت.

در برخی از سیستم ها، این ترفند مستلزم استفاده از گزینه -Y به جای گزینه -X است.

کپی کردن از/به کامپیوتر راه دور (scp و sftp)

scp

بسته OpenSSH همچنین شامل دو برنامه است که از یک تونل رمزگذاری شده SSH برای کپی فایل ها در شبکه استفاده می کنند. برنامه اول - scp("کپی امن") - بیشتر مورد استفاده قرار می گیرد، مانند برنامه مشابه cp برای کپی کردن فایل ها. قابل توجه ترین تفاوت این است که منبع فایل می تواند میزبان راه دور و به دنبال آن یک کولون و محل فایل باشد. به عنوان مثال، اگر می‌خواهیم سندی به نام document.txt را از فهرست اصلی خود در remote-sys در فهرست کاری فعلی سیستم محلی خود کپی کنیم، می‌توانیم این کار را انجام دهیم:

Scp remote-sys:document.txt. document.txt 100% 177 0.2KB/s 00:00

مثال واقعی:

# فایل را در ماشین محلی حذف کنید اگر وجود دارد rm dirlist.txt # یک فایل در دستگاه راه دور ssh ایجاد کنید [ایمیل محافظت شده]"ls * > dirlist.txt" # وجود آن ssh را بررسی کنید [ایمیل محافظت شده]"ls -l" # آن را در scp ماشین محلی کپی کنید [ایمیل محافظت شده]:dirlist.txt. # محتوای آن را بررسی کنید cat dirlist.txt

  • [ایمیل محافظت شده]- نام کاربری و میزبان راه دور،
  • . (نقطه) به این معنی است که فایل باید در دایرکتوری کاری فعلی روی سرور راه دور کپی شود، اما نام فایل ثابت می ماند، یعنی nfile.txt
  • یادداشت:

    برای کپی کردن یک فایل از B به A هنگام ورود به B:
    scp /path/to/file username@a:/path/to/destination
    کپی کردن یک فایل از B به A هنگام ورود به A:
    scp username@b:/path/to/file /path/to/destination

    sftp

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

    Alex@MiAl-PC ~ $ sftp [ایمیل محافظت شده]متصل به 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp فیلم ها اسناد دانلودها تصاویر موسیقی قالب های دسکتاپ عمومی sftp> lls dirlist.txt nfile.txt sftp> ls temp/TakeMeHome sftp> سی دی temptch / TakeMeHome mial/temp/TakeMeHome به TakeMeHome sftp> خداحافظ

    پروتکل SFTP توسط بسیاری از مدیران فایل گرافیکی که در توزیع های لینوکس یافت می شوند پشتیبانی می شود. با استفاده از Nautilus (GNOME) و Konqueror (KDE)، می‌توانیم URIها (پیوندها) را که با sftp:// شروع می‌شود در نوار پرش وارد کنیم و با فایل‌های واقع در یک سیستم راه دور که یک سرور SSH را اجرا می‌کند کار کنیم.

    سلام! من به این سوال علاقه دارم: چگونه از طریق اینترنت از طریق SSH به رایانه خانگی خود وصل شویم. من یک سرور FreeSSHd در خانه نصب کرده ام. همانطور که متوجه شدم، باید به نوعی پورت 22 را روی IP خارجی باز کنم؟ Alex

    بله، اغلب نیاز ایجاد می شود. من در مورد چیزهای زیادی در آن مقاله صحبت کردم، اما در اینجا به طور انحصاری در مورد SSH صحبت خواهیم کرد، زیرا الکس با مهربانی این فرصت را در اختیار ما قرار داد. علاوه بر این، من خودم به شدت به SSH علاقه مند هستم، و اینجا هم روی ویندوز... mmm.

    SSH چیست و چرا لازم است؟

    نکته این است که SSH است اسامن است SHخوب پروتکل برای دسترسی ایمن به پوسته کنترل. بنابراین، دسترسی به خط فرمان را به طور خاص فراهم می کند، زیرا Shell به صورت ترجمه شده است پوستهو اینجا در معنی پوسته کنترل متن. اما به طور کلی، این پروتکل به این دلیل قابل توجه است که اجازه می دهد هر ترافیک دیگری از داخل آن عبور کند و به صورت رمزگذاری شده است. بنابراین، پروتکل برای اتصال امن به فایل سیستم SFTP نامیده می شود و در بالای SSH اجرا می شود. اما می تواند کاملاً هر اتصال دیگری را تونل کند - خواه HTTP یا حتی RDP باشد. در اصل، معلوم می شود که یک "VPN روی زانو" است.

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

    حداقل نسخه معمولی - cmd - به شما امکان می دهد کار کمی با دستگاه از راه دور انجام دهید. Powershell نیز وجود دارد - این یک راه حل مدرن و قدرتمندتر است. Freesshd به شما اجازه می دهد که کنسول را به powershell تغییر دهید، اما من نتوانستم به آن وصل شوم. من به CMD وصل شدم - اما کاملاً غیر قابل استفاده است:

    ثانیاً، در مورد FreeSSHd، من حتی از طریق یک شبکه محلی هم نتوانستم به رایانه ویندوزی متصل شوم، نه اینکه از طریق اینترنت وصل شوم. یا بهتر است بگوییم، امکان اتصال وجود دارد، اما سرویس مسدود می‌شود و از کار می‌افتد؛ شما نمی‌توانید میزبان ویندوز را از این طریق مدیریت کنید.

    بنابراین، من فرض می‌کنم که الکس برای اتصال به سیستم فایل یا استفاده از آن به عنوان VPN و پروکسی کردن چیزی از طریق SSH، به یک سرور ssh در ویندوز نیاز داشت. اگرچه من شک دارم که FreeSSHd این اجازه را بدهد. زیرا ثالثاً: حتی تنظیمات را ذخیره نمی کند؛ وقتی سرویس را مجدداً راه اندازی می کنید، همه چیز اشتباه می شود. به طور کلی، من واقعاً امیدوارم که الکس در نظرات به ما بگوید که چرا به این نیاز داشت.

    چگونه می توانید SSH را در ویندوز اجرا کنید؟

    یک راه حل کاربردی تر وجود دارد - Powershelserver. اگرچه اشکالاتی نیز دارد، اما حداقل خراب نمی شود. بنابراین، توصیه می کنم از آن برای اتصال از طریق SSH به سرورهای ویندوز استفاده کنید.

    اولاً، بدون خرابی به طور پایدار کار می کند. و از طریق آن واقعاً می توانید ویندوز را از طریق powershell کنترل کنید.

    همه تنظیمات به طور معمول ذخیره می شوند. توابع مشابه در FreeSSHd و حتی بیشتر در دسترس هستند - می توانید از SCP استفاده کنید - این کپی کردن فایل ها از طریق SSH است.

    اما شیک ترین چیز کنسول است! کار می کند، آقایان!

    من به راحتی و بدون هیچ سر و صدایی با اضافه کردن کاربر وصل شدم (این کار باید در freesshd انجام شود). و آن ساده ترین دستوربرای مشاهده جدول مسیریابی کاملاً کار کرد و اطلاعات لازم را داد. Frisssh دقیقاً زمانی که سعی کردم netstat -rn را مشاهده کنم برای من "افتاد".

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

    تنظیم رمزگذاری در Powershellserver

    اکنون ما SSH کامل داریم و می توانیم ویندوز را به طور کامل از طریق کنسول مدیریت کنیم.

    مایکروسافت راه حل SSH خود را ایجاد خواهد کرد

    به هر حال، مایکروسافت در تابستان اعلام کرد که قصد توسعه دارد بومیپشتیبانی SSH از Powershell در نسخه های جدید ویندوز. اطلاعیه های خبری در Habré و pcweek (و بیشتر) وجود دارد. بنابراین، ما فقط می‌توانیم منتظر این رویداد مهم باشیم، زیرا واقعاً پیشرفتی برای کار در آن خواهد بود شبکه های ناهمگن.

    من سایر توابع - sftp و scp را بررسی نکردم، اما به دلایلی مطمئن هستم که آنها نیز عالی کار خواهند کرد.

    چگونه یک پورت SSH را از خارج باز کنیم؟

    بنابراین، به رازی که این مقاله در وهله اول برای آن شروع شد، رسیدیم. من به سوال خواننده پاسخ خواهم داد.

    ارسال پورت روی روتر یا مودم

    برای اتصال به رایانه از خارج، واقعاً باید NAT یا در یک مورد خاص انجام دهید. نحوه انجام این کار بستگی به دستگاهی دارد که به عنوان دروازه استفاده می شود. این می تواند یک مودم ADSL یا . در بیشتر موارد، دستورالعمل‌های دقیق برای دستگاه شما را می‌توان به راحتی با پرس و جوهایی مانند «پورت فوروارد کردن» پیدا کرد دستگاه_مدل" یا "پورت فوروارد دستگاه_مدل»

    این چیزی است که در روتر خانگی Zyxel Keenetic Lite من به نظر می رسد:

    و در یک مودم ADSL با عملکرد روتر Linksys WAG200G اینگونه به نظر می رسد:

    علاوه بر این، برای برخی از ارائه دهندگان این ممکن است از نظر فنی امکان پذیر نباشد زیرا آنها "سفید" را ارائه نمی دهند.

    ارسال یک پورت به یک سرور راه دور با استفاده از یک تونل SSH

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

    راه اندازی یک تونل SSH "معکوس".

    چنین حمل و نقل را می توان به راحتی با استفاده از یک Putty کلاینت SSH ساده انجام داد (همچنین وجود دارد) سپس می توانید از طریق پورت فوروارد شده به این سرور بسیار راه دور متصل شوید.

    در اینجا اساسا یک حلقه است. ما یک جلسه SSH را از ویندوز به یک سرور راه دور باز می کنیم و در داخل این اتصال، پورت SSH خود Windows Powershellserver (یا FreeSSHd) را به پورت محلی 3322 سرور راه دور تونل می کنیم. و در همان جلسه اکنون از طریق همین پورت 3322 به ویندوز در Powershell وصل می شویم... امیدوارم گیج نشده باشید. اما... این جادو است، دوستان! :) تونل های SSH دنیای خاصی هستند، با کمک آنها می توانید کارهای باورنکردنی انجام دهید، چنان درهایی را باز کنید که اگر ناگهان همه اینها را بفهمند تمام ماموران امنیتی به شدت گریه می کنند ... اما اوه خوب.

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

    چگونه بررسی کنیم که پورت به درستی فوروارد شده است؟

    بسیار ساده. باید بررسی کنید که آیا باز است یا خیر. در مورد SSH پورت بازبا پیامی در مورد نسخه خود پاسخ خواهد داد. اکثر ساده ترین راهبررسی پورت - ابزار شبکه راه دور.

    کافیست در خط فرمان که با فاصله از هم جدا شده اند تایپ کنید:

    پورت telnet domain_or_IP

    اگر پورت در دسترس باشد، چیزی شبیه به این را خواهید دید:

    پاسخ SSH در صورت موجود بودن پورت

    اگر به دلایلی پورت در دسترس نباشد، «اتصال رد شد» یا «تاریخ اتصال» را مشاهده خواهید کرد. در حالت اول، آنی خواهد بود و به این معنی است که پورت توسط فایروال بسته شده است.

    در حالت دوم، مانند یک "هنگ" به نظر می رسد و می تواند تا چند دقیقه طول بکشد - مشتری telnet سعی می کند یک اتصال برقرار کند. این همچنین ممکن است به معنای مسدود کردن توسط یک فایروال باشد، اما از نوع دیگری. یا به سادگی که میزبان مشخص شده در دسترس نیست یا پورت روی آن بسته است.

    اگر توانستید از طریق telnet وصل شوید، کلید ترکیبی Ctrl+] را فشار دهید و وارد شوید ترک کردن،سپس Enter کنید. در غیر این صورت، نمی‌توانید جلسه را قطع کنید و اگر هنوز به آن نیاز دارید، باید یک پنجره کنسول جدید باز کنید.

    این مقاله به عنوان ناتمام علامت گذاری شده است. به یادداشت انتهای مقاله مراجعه کنید.

    این مقاله به مشتری و سرور یک ترمینال امن (پوسته امن) در اوبونتو، پیکربندی و استفاده از آنها اختصاص دارد. SSH یک پروتکل شبکه ویژه است که به شما امکان می دهد از راه دور به رایانه ای با امنیت اتصال بالا دسترسی پیدا کنید. می توانید در مورد پروتکل ssh بیشتر بخوانید.

    شرح اصول عملیاتی و کاربردهای مورد استفاده

    اساساً SSH در قالب دو برنامه - یک سرور SSH و یک سرویس گیرنده SSH پیاده سازی می شود.اوبونتو از اجرای رایگان یک کلاینت و سرور SSH - OpenSSH استفاده می کند. هنگام اتصال، کلاینت تحت یک پروسه مجوز با سرور قرار می گیرد و یک ارتباط رمزگذاری شده بین آنها برقرار می شود. سرور OpenSSH می تواند با هر دو پروتکل ssh1 و ssh2 کار کند. پروتکل ssh1 در حال حاضر ناامن تلقی می شود و استفاده از آن به شدت ممنوع است. من به عمد جزئیات فنی مختلف پروتکل را حذف می کنم، زیرا هدف اصلی این راهنما توصیف پیکربندی و استفاده از آن است. مقالات زیادی در اینترنت در مورد خود پروتکل، اصول عملکرد آن، الگوریتم های رمزگذاری و غیره وجود دارد، به عنوان مثال، می توانید جزئیات آن را مطالعه کنید.

    نصب و راه اندازی

    نصب OpenSSHمی توانید از دستور ترمینال استفاده کنید:

    sudo apt-get install ssh

    متا بسته ssh شامل یک کلاینت و یک سرور است، اما به احتمال زیاد فقط سرور را نصب می کند، زیرا کلاینت به طور پیش فرض در اوبونتو گنجانده شده است.

    تنظیم سرور

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

    سرویس sudo ssh stop| شروع| راه اندازی مجدد

    فایل پیکربندی اصلی برای سرور SSH فایل /etc/ssh/sshd_config است که فقط توسط superuser قابل خواندن یا ویرایش است. پس از هر تغییر در این فایل، برای اعمال چنین تغییراتی باید سرور ssh را مجددا راه اندازی کنید.

    نمونه ای از پیکربندی پیش فرض سرور SSH در اوبونتو:

    # نمونه ای از پیکربندی سرور open-ssh با # نظرات روسی..2010. ###### افسانه : # # منظور ما از "پیش فرض" رفتار sshd زمانی است که ## دستورالعمل به صراحت مشخص نشده باشد. شایان ذکر است که در اوبونتو # # فایل sshd_config از قبل حاوی تعدادی تنظیمات است که # # تنظیمات پیش‌فرض برای اوبونتو هستند. # # چنین تنظیماتی در این فایل مشخص شده است. # # # ############################################ ############################ تنظیمات آدرس/پورت و غیره. ############################################### # ###################### # # ## بندر ###################### ### ############################# # # # بندر استفاده شده است. می توانید چندین مورد را مشخص کنید، به عنوان مثال: # # پورت 22 # # پورت 23 # # پورت 24 # # توصیه می شود از یک پورت غیر استاندارد استفاده کنید، زیرا استاندارد # # اغلب توسط ربات ها برای # # حفره های بالقوه اسکن می شود. اگر از طریق یک آدرس # # مشخص شود، می توان آن را حذف کرد. همچنین به پارامتر ListenAddress مراجعه کنید. # # # بندر 22 # # ## گوش دادن آدرس ###################################### ### # # # آدرس شبکه ای که سرور به آن گوش می دهد. آدرس را می توان # # به این شکل نوشت: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # اگر پورتی مشخص نشده باشد، sshd به این آدرس و # # در پورت مشخص شده در گزینه Port. اگر # # از ListenAddress بدون تعیین پورت استفاده کنید، گزینه # # Port باید قبل از گزینه ListenAddress باشد. اگر # # مشخص نشده باشد، به طور پیش‌فرض به همه آدرس‌های # # محلی گوش می‌دهد. می توانید چندین آدرس را مشخص کنید. # # # ## آدرس خانواده ######################################### # # # مشخص می کند که کدام خانواده آدرس IP باید # # توسط sshd استفاده شود. گزینه‌های ممکن: # # "هر" - هر # # "inet" (فقط IPv4) # # "inet6" (فقط IPv6) # # پیش‌فرض - "هر". # AddressFamily inet # # ## UseDNS ###################################################################### ######### # # # مشخص می‌کند که آیا sshd باید نام میزبان را بررسی کند و # # از آن نام میزبان برای بررسی آدرس IP ارسال شده توسط مشتری در برابر # # دریافت شده از DNS استفاده کند. # # مقدار پیش فرض مثبت است". # # # ############################################ ########################## تنظیمات دسترسی کاربر ##################### ############################################### ### # # # اجازه/مجاز دادن به کاربر توسط دستورات # # DenyUsers، AllowUsers، DenyGroups و AllowGroups تعیین می شود. # # در این مورد، چک از بالا به پایین در طول زنجیره می رود: # # ## DenyUsers ## # # || # # ## AllowUsers ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # فقط نام کاربر و گروه پذیرفته می شود، شناسه های عددی # # (UserID) شناسایی نمی شوند. ضبط # # از چندین کاربر/گروه به نوبه خود، با # # فاصله از هم جدا شده اند. اگر به شکل user@host نوشته شده باشد، سپس # # کاربر و میزبان به طور جداگانه بررسی می شوند، این به # # اجازه می دهد تا دسترسی کاربران خاصی را از # # میزبان خاص محدود کند. شایان ذکر است که دستورات # # DenyUsers و AllowUsers نام # # کاربر را به عنوان پارامتر می گیرند، در حالی که DenyGroups و AllowGroups نام گروه # # را می گیرند. برای اطلاعات بیشتر # # درباره فرم‌های ثبت نام کاربران و گروه‌ها، به PATTERNS در man ssh_config مراجعه کنید. # # # ## DenyUsers ######################################### ### # # # لیست کاربرانی که نمی توانند از sshd استفاده کنند. # # پیش فرض - مشخص نشده = هیچ کس ممنوع نیست. آن ها اگر در اینجا یک کاربر # # مشخص شده باشد، از دسترسی # # به سرور ssh محروم خواهد شد. # # # ## AllowUsers ######################################### ## # # # فهرست کاربرانی که می توانند از sshd استفاده کنند، # # به طور پیش فرض - مشخص نشده = برای همه مجاز است. آن ها اگر حداقل یک کاربر # # مشخص شده باشد، دسترسی ssh به سرور # # فقط برای آن کاربر در دسترس است. # # # ## DenyGroups ######################################### ## # # # لیست گروه هایی که نباید توسط sshd استفاده شود. # # پیش فرض - مشخص نشده = هیچ گروهی ممنوع است. # # به این معنا که اگر حداقل یک گروه مشخص شده باشد، کاربران # # موجود در این گروه از دسترسی به سرور ssh # # محروم خواهند شد. # # # ## اجازه دادن به گروه ها ########################################## # # # # فهرست گروه هایی که sshd می تواند استفاده کند. # # پیش فرض - مشخص نشده = برای همه مجاز است. آن ها اگر حداقل یک گروه # # مشخص شده باشد، تنها کاربران# # موجود در آن اجازه دسترسی به سرور ssh را خواهند داشت.# # # ################### ############################################### ### گزینه های تعیین کننده وضعیت اتصال ################################################################### ################################### TCPKeepAlive ############## ################################# # # # نشان می دهد که آیا سیستم نیاز به ارسال پیام های TCP به مشتری دارد یا خیر. # به منظور حفظ اتصال. اگر این بسته ها را ارسال کنید، ## می توانید تشخیص دهید که آیا اتصال قطع شده است. با این حال، این ## نیز به این معنی است که ممکن است در صورت قطع # # لحظه ای مسیریابی قطع شود و # # این برای برخی بسیار آزاردهنده است. از سوی دیگر، اگر # # چنین پیام‌هایی ارسال نشود، جلسات روی سرور می‌توانند # # برای مدت نامحدودی ادامه داشته باشند، ## کاربران «شبح» ایجاد می‌کنند و منابع سرور را می‌بلعد. مقدار پیش فرض "yes" است، # # i.e. چنین پیام هایی ارسال کنید برای غیرفعال کردن ارسال # # چنین پیام‌هایی، مقدار "no" را تنظیم کنید. قبلا این گزینه ## KeepAlive نام داشت. شایان ذکر است که # # راه های امن تری برای بررسی وضعیت # # اتصال وجود دارد (به زیر مراجعه کنید). # # # TCPKeepAlive بله # # ## ClientAliveCountMax ###################################### # تعداد پیام هایی را برای کلاینت هایی که sshd # # پشت سر هم بدون دریافت هیچ پاسخی از مشتری # # ارسال می کند، تنظیم می کند. اگر به آستانه رسیده باشد و مشتری # # پاسخ ندهد، sshd کلاینت را قطع می کند و جلسه # # ssh را خاتمه می دهد. شایان ذکر است که استفاده از چنین پیام های # # کاملاً با دستورالعمل TCPKeepAlive متفاوت است. # # پیام‌ها به/از مشتریان از طریق یک کانال ## رمزگذاری شده ارسال می‌شوند و بنابراین مستعد جعل نیستند. پیام های # # TCPKeepAlive در معرض جعل هستند. مکانیسم کلاینت زنده # # به ویژه در مواردی که سرور و کلاینت به # # نیاز دارند تا بدانند چه زمانی اتصال غیرفعال شده است، ارزشمند است. مقدار # # پیش‌فرض 3 است. در صورتی که ClientAliveInterval # # روی 15 تنظیم شده باشد و ClientAliveCountMax در پیش‌فرض # # باقی بماند، کلاینت‌های پاسخگو پس از تقریباً ## 45 ثانیه قطع می‌شوند. این دستورالعمل فقط برای # # پروتکل ssh2 کار می کند. # # # ## ClientAliveInterval ########################################## فاصله زمانی بر حسب ثانیه اگر در طول # # این بازه با مشتری ارتباطی وجود نداشته باشد، sshd # # پیامی را از طریق یک کانال رمزگذاری شده ارسال می کند و درخواست پاسخ # # از مشتری می کند. پیش فرض 0 است، یعنی # # از ارسال چنین پیام هایی خودداری کنید. این دستور ## فقط برای پروتکل ssh2 کار می کند. # # # ############################################ ############################# گزینه های احراز هویت عمومی ################### ############################################### ######### # ### Authorized KeysFile ################################### # # # # فایلی را مشخص می کند که حاوی کلیدهای عمومی # # برای احراز هویت کاربران است. دستورالعمل # # ممکن است حاوی نشانه هایی به شکل %M باشد که در طول فرآیند برقراری اتصال # # درج می شوند. # # نشانه‌های زیر تعریف شده‌اند: # # %% - جایگزین شده با کلمه تحت اللفظی "%" # # %h - جایگزین شده با فهرست اصلی # # کاربر تأیید شده # # %u - جایگزین شده با نام کاربر تأیید شده # # بنابراین، فایل کلید را می توان به صورت # # به صورت مطلق (یعنی یک فایل مشترک با کلیدها) و # # به صورت پویا - بسته به کاربر (یعنی یک فایل # # برای هر کاربر) تعیین کرد. # # پیش فرض ".ssh/authorized_keys" است. # # مثالی برای یک فایل کلیدی در پوشه اصلی کاربر: # # AuthorizedKeysFile %h/.ssh/authorized_key # # مثال برای یک فایل به اشتراک گذاشته شده: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # توضیحات فایل کلیدهای_مجاز را برای اطلاعات بیشتر. # # # ## ChallengeResponseAuthentication ########################### # # # تعیین می‌کند که آیا احراز هویت چالش-پاسخ ## مجاز است یا خیر. همه # # نوع احراز هویت از login.conf پشتیبانی می‌شوند. پیش‌فرض "بله" است، # # یعنی. اجازه. # # در اوبونتو - به دلایل امنیتی غیرفعال است. # # # ChallengeResponseAuthentication no # # ## HostbasedUsesNameFromPacketOnly ######################## # # # مشخص می‌کند که سرور چگونه باید نام میزبان مشتری را دریافت کند. یک طرح احراز هویت مبتنی بر تأیید میزبان. # # اگر روی "بله" تنظیم شود، sshd هنگام بررسی یک تطابق در فایل های # # ~/.shosts، ~/.rhosts یا /etc/hosts.equiv از نام میزبان ارائه شده توسط مشتری # # استفاده می کند. # # (انجام رزولوشن معکوس DNS) اگر روی "no" # # تنظیم شود - sshd نام را از خود اتصال TCP حل می کند. # # پیش فرض "خیر" است. # # # ## نادیده گرفتنRhosts ########################################## # # # از استفاده از فایل های rhosts و .shosts # # در احراز هویت مبتنی بر میزبان جلوگیری می کند. # # (RhostsRSAAAuthentication یا HostbasedAuthentication). # # فایل های /etc/hosts.equiv و /etc/ssh/shosts.equiv هنوز # # در حال استفاده هستند. # # پیش فرض "بله" است. # # # IgnoreRhosts بله # # ## IgnoreUserKnownHosts ###################################################################### نشان می دهد که آیا sshd باید کاربر # # فایل "میزبان های شناخته شده" ~/.ssh/known_hosts را در طول # # فرآیند احراز هویت مبتنی بر میزبان # # نادیده بگیرد (RhostsRSAAAuthentication یا HostbasedAuthentication). # # پیش فرض "خیر" است. # # # ## PermitBlacklistedKeys ################################## # # # نشان می دهد که آیا sshd باید پذیرفته شود کلیدهای # # به عنوان در معرض خطر قرار گرفتند (کلیدهای ## شناخته شده در معرض خطر (به ssh-vulnkey مراجعه کنید)). اگر روی "بله" تنظیم شود - # # تلاش های احراز هویت با چنین کلیدهایی ثبت می شود # # و پذیرفته می شود، اگر روی "خیر" تنظیم شود - # # تلاش های احراز هویت رد می شود. # # پیش فرض "خیر" است. # # # ## PermitEmptyPasswords ########################################################################################################################### ### مورد احراز هویت مجاز با با استفاده از رمز عبور ، # # نشان می دهد که آیا ورود با رمز عبور خالی امکان پذیر است یا خیر. # # پیش فرض "خیر" است. # # # PermitEmptyPasswords no # # ## PermitRootLogin ################################################################# # # # # نشان می دهد که آیا ورود ssh به عنوان superuser # # (ریشه) امکان پذیر است یا خیر. می تواند مقادیر زیر را بگیرد: # # "yes" - ابرکاربر می تواند وارد شود. طرح احراز هویت جهانی # # فعلی اعمال می شود. # # # # "بدون رمز عبور" - ابرکاربر می تواند وارد شود. # # احراز هویت رمز عبور برای آن غیرفعال خواهد شد. # # # # "forced-commands-only" - ابرکاربر می‌تواند با استفاده از احراز هویت # # بر اساس یک کلید عمومی و # # فقط در صورتی که دستور لازم برای اجرا را پاس کند، وارد سیستم شود. # # این برای تهیه نسخه پشتیبان مفید است، حتی زمانی که ورود به سیستم فوق کاربر عادی (یعنی نه از طریق ssh) # # غیرفعال است. همه روش‌های دیگر احراز هویت # # برای ابرکاربر مسدود خواهند شد. # # # # مقدار پیش فرض مثبت است". # # # PermitRootLogin بله # # ## پروتکل ############################################################### ######## # # # مشخص می‌کند که sshd از کدام پروتکل استفاده کند. # # مقادیر احتمالی '1' و '2' به ترتیب ssh1 و ssh2 # # هستند. نوشتن همزمان امکان پذیر است، در این صورت # # مقادیر باید با کاما از هم جدا شوند. # # پیش فرض "2.1" است. # # شایان ذکر است که ترتیب پروتکل ها در ورودی های # # اولویت را تعیین نمی کند، زیرا کلاینت انتخاب می کند که # # از میان چندین پروتکل پیشنهادی سرور برای استفاده از # # استفاده کند. # # # پروتکل 2 # # ## UsePAM ##################################### ########## # # # رابط PAM را فعال می کند (رابط ماژول تأیید اعتبار قابل اتصال # #). اگر روی "بله" تنظیم شود، همه انواع احراز هویت # # علاوه بر پردازش ماژول جلسه و حساب، # # احراز هویت PAM خواهد بود. بر اساس # # چالش-پاسخ (ChallengeResponseAuthentication و # # PasswordAuthentication) استفاده می شود زیرا # # احراز هویت چالش-پاسخ در PAM معمولاً همان نقش # # را به عنوان احراز هویت رمز عبور ایفا می کند، باید # # یا PasswordAuthentication یا # # ChallengeResponseAuthentication را غیرفعال کنید. شایان ذکر است که # # اگر دستور UsePAM فعال باشد، نمی‌توانید # # sshd را به‌عنوان کاربری غیر از روت اجرا کنید. # # مقدار پیش فرض است". # # # UsePAM بله # # ## احراز هویت رمز عبور ################################## # # # نشان می دهد که آیا آیا احراز هویت با استفاده از رمز عبور # # فعال است. # # پیش فرض "بله" است. # # # ## کلید میزبان ########################################## ##### # # # فایل حاوی کلید میزبان خصوصی # # مورد استفاده توسط SSH را مشخص می کند. پیش‌فرض /etc/ssh/ssh_host_key # # برای پروتکل ssh1 و /etc/ssh/ssh_host_rsa_key و # # /etc/ssh/ssh_host_dsa_key برای پروتکل ssh2 است. شایان ذکر است که sshd از فایل ## استفاده نمی کند که برای دیگران غیر از کاربر قابل دسترسی باشد. می توانید # # از چندین فایل با کلیدها استفاده کنید، کلیدها "rsa1" - # # برای پروتکل ssh1 و "dsa"/"rsa" برای پروتکل ssh2 هستند. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################ ### ###################################### گزینه های پروتکل SSH نسخه 1 (ssh1) ### ############################################# ### ################### # استفاده از پروتکل ssh1 اکیداً توصیه نمی شود.# # پروتکل ssh2 بسیار امن تر از ssh1 است # ### ############################################### ####### # # ## بازه زمانی ایجاد مجدد کلید ################################ # # # برای پروتکل ssh1 - یک بار در یک زمان معین # # یک سرور موقت جدید کلید # # به طور خودکار تولید می شود (اگر از یکی استفاده شده باشد). این کار برای # # جلوگیری از رمزگشایی جلسات رهگیری شده انجام می شود تا بعداً # # با پارامترهای این جلسات وارد دستگاه شوید و # # کلیدها را بدزدید. چنین کلیدی در هیچ کجا ذخیره نمی شود (در # # رم ذخیره می شود). این دستورالعمل طول عمر # # کلید را بر حسب ثانیه مشخص می کند و پس از آن دوباره # # تولید می شود. اگر مقدار 0 - # # تنظیم شود، کلید دوباره تولید نمی شود. # # مقدار پیش فرض 3600 (ثانیه) است. # # # KeyRegenerationInterval 3600 # # ## RhostsRSAA احراز هویت ################################# # # # نشان می دهد که آیا احراز هویت بر اساس # # rhost یا فایل های ‎/etc/hosts.equiv همراه با احراز هویت موفق میزبان ## از طریق RSA. # # فقط مربوط به پروتکل ssh1 است. # # پیش فرض "خیر" است. # # # RhostsRSAA احراز هویت بدون # # ## احراز هویت RSAA ###################################################################### ## # # # نشان می دهد که آیا احراز هویت "خالص" RSA مجاز است یا خیر. # # فقط مربوط به پروتکل ssh1 است. # # پیش فرض "بله" است. # # # احراز هویت RSAA بله # # ## ServerKeybits ################################################################ ### # # # تعداد بیت ها را در کلید موقت سرور برای # # پروتکل ssh1 تعریف می کند. حداقل مقدار 512 است. # # مقدار پیش فرض 1024 است. # ServerKeyBits 768 # # ################################ گزینه های ###################################### گزینه های پروتکل SSH نسخه 2 (ssh2) ## ## ############################################# ### ###################################################################### ## ##################### # # # الگوریتم های رمزگذاری مجاز برای # # پروتکل ssh2 را نشان می دهد. چندین الگوریتم باید # # با کاما از هم جدا شوند. الگوریتم های پشتیبانی شده: # # "3des-cbc"، "aes128-cbc"، "aes192-cbc"، "aes256-cbc"، # # "aes128-ctr"، "aes192-ctr"، "aes256-ctr"، " arcfour128، # # «arcfour256»، «arcfour»، «blowfish-cbc»، «cast128-cbc». # # به طور پیش‌فرض: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, ## arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, aes128-ctr, #5ctr -ctr # # # ## احراز هویت مبتنی بر میزبان ################################## # # نشان می دهد که آیا احراز هویت فعال است، بر اساس # # راستی‌آزمایی میزبان. rhosts یا /etc/hosts.equiv علامت‌گذاری شده است، ## و در صورت موفقیت، همراه با بررسی موفقیت‌آمیز ## کلید عمومی، دسترسی مجاز است. این دایرکتیو ## همانند دستورالعمل احراز هویت RhostsRSAA است و ## فقط برای پروتکل ssh2 مناسب است. # # پیش فرض "خیر" است. # # # احراز هویت مبتنی بر میزبان بدون # # ## MAC ################################################################ ############ # # # یک الگوریتم MAC معتبر را نشان می دهد (پیام # # کد احراز هویت). الگوریتم MAC ## توسط پروتکل ssh2 برای محافظت از یکپارچگی داده ها استفاده می شود. چندین الگوریتم # # باید با کاما از هم جدا شوند. # # پیش‌فرض: # # hmac-md5,hmac-sha1, [ایمیل محافظت شده],hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ######################### ########## # # # نشان می دهد که آیا احراز هویت بر اساس # # کلید عمومی مجاز است یا خیر. فقط مربوط به پروتکل ssh2 است. # # پیش فرض "بله" است. # # # PubkeyAuthentication بله ##################################################################### #################################### گزینه های GSSAPI ############ ## ############################################## ## ######################### # ############# فقط برای پروتکل ssh2 قابل اجراست #### #### ### # # ## GSSAPIAAuthentication ############################################################### ## # # # نشان می دهد که آیا احراز هویت کاربر # # بر اساس GSSAPI است یا خیر. پیش فرض "نه" است، یعنی. ممنوع است. # # # ## GSSAPIKExchange ######################################### نشان می دهد که آیا تعویض کلید بر اساس # # GSSAPI مجاز است یا خیر. مبادله کلید با استفاده از GSSAPI به # # متکی نیست کلیدهای ssh هنگام تأیید هویت میزبان # # پیش فرض "نه" است - i.e. تعویض ممنوع # # # ## GSSAPICCleanupCredentials ############################## # # # تعیین می‌کند که به طور خودکار از بین برود # # حافظه پنهان کاربر از اعتبارنامه های احراز هویت هنگامی که # جلسه به پایان می رسد. # # پیش فرض "بله" است - i.e. باید نابود شود # # # ## GSSAPIStrictAcceptorCheck ############################### # # تعیین می‌کند که بررسی هویت چقدر باید سخت باشد. # مشتری هنگام احراز هویت از طریق GSSAPI. # # مقدار "بله" باعث می شود که مشتری به سرویس میزبان دریافت کننده # # در هاست فعلی احراز هویت کند. مقدار "no" # # به مشتری اجازه می دهد تا با استفاده از هر کلید سرویس # # احراز هویت کند. # # پیش فرض "بله" است. # # شایان ذکر است که تنظیم این روی "نه" ممکن است فقط با کتابخانه‌های نادر Kerberos GSSAPI کار کند. # # # ############################################ ################################ گزینه های Kerberos ################ ############################################### ### #################################################################################################### ### ######## # # # نشان می دهد که آیا رمز عبور # # ارائه شده توسط کاربر برای احراز هویت # # (PasswordAuthentication) نیاز به اعتبارسنجی در Kerberos KDC دارد یا خیر. # # برای استفاده از این گزینه، سرور باید # # درستی KDC را تأیید کند. (سرور به یک # # سربرگ Kerberos نیاز دارد که امکان تأیید هویت # # KDC را فراهم می کند) # # پیش فرض "خیر" است. # # # ## KerberosGetAFSToken ######################################### اگر AFS فعال است و کاربر Kerberos 5 TGT دریافت کرده است، ## آیا باید قبل از اینکه کاربر ## بتواند به پوشه اصلی خود دسترسی پیدا کند، یک توکن AFS دریافت کند. # # پیش فرض "خیر" است. # # # ## KerberosOrLocalPasswd ################################## # # نشان می دهد که در این مورد چه کاری باید انجام دهید اگر احراز هویت # # از طریق Kerberos انجام نشد. اگر # # مقدار = "بله"، رمز عبور با استفاده از # # هر مکانیزم مجوز محلی اضافی، # # به عنوان مثال /etc/passwd تأیید می شود. # # پیش فرض "بله" است. # # # ## KerberosTicketCleanup ################################## # # نشان می دهد که آیا فایل به طور خودکار حذف شود با # # حافظه پنهان بلیط کاربر در پایان جلسه. # # پیش فرض "بله" است. # # # ############################################ ############################## گزینه های تغییر مسیر ################## ### ############################################ ## ############# # # ## AllowAgentForwarding ############################# #### ### # # # تعیین می‌کند که آیا تغییر مسیر به # # ssh-agent مجاز یا غیرفعال شود. پیش فرض "بله" است، یعنی اجازه. # # شایان ذکر است که غیرفعال کردن تغییر مسیر # # امنیت را افزایش نمی دهد مگر اینکه # # دسترسی کاربران به پوسته نیز ممنوع شود، زیرا آنها همیشه می توانند # # همتایان عامل خود را نصب کنند. # # # ## AllowTcpForwarding #################################### # # # نشان می دهد که آیا باید تغییر مسیر TCP را مجاز یا غیرفعال کنید. # # پیش فرض "بله" است، یعنی. اجازه. شایان ذکر است # # که مانند AllowAgentForwarding، غیرفعال کردن تغییر مسیر # # تا زمانی که # # کاربر به کنسول دسترسی دارند، امنیت را بهبود نمی بخشد، زیرا آنها می توانند # # آنالوگ های خود را نصب کنند. # # # # # ## Gateway Ports ######################################## ## # # # تعیین می‌کند که آیا به میزبان‌های راه دور اجازه دسترسی به # # پورت‌های فوروارد شده داده شود یا خیر. به طور پیش‌فرض، sshd برای اتصال به پورت‌های فوروارد شده فقط در رابط Loopback # # # # گوش می‌دهد. این مانع از اتصال سایر میزبان های راه دور # # به پورت های فوروارد شده می شود. می توانید # # از GatewayPorts استفاده کنید تا به sshd اجازه دهید # # این کار را انجام دهد. این دستورالعمل می تواند 3 مقدار داشته باشد: # # "no" - فقط Loopback. # # "بله" - هر آدرس. # # "clientspecified" - آدرس های مشخص شده توسط مشتری. # # # ## PermitOpen ######################################### ## # # # نشان می دهد که ارسال پورت TCP در کجا مجاز است. # # تعیین یک تغییر مسیر باید یکی از # # اشکال زیر را داشته باشد: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # ورودی های متعدد را می توان با جدا کردن آنها با فاصله مشخص کرد. # # آرگومان "any" را می توان برای حذف تمام محدودیت های # # در ارسال پورت استفاده کرد. به طور پیش‌فرض، هرگونه تغییر مسیر # # مجاز است. # # # ## تونل مجوز ######################################### # # # نشان می دهد که آیا تغییر مسیر دستگاه های تون مجاز است یا خیر. # # می تواند مقادیر را بگیرد: # # "بله" # # "نقطه به نقطه" (سوم لایه شبکه) # # "ethernet" (دومین لایه شبکه) # # "no" # # مقدار "بله" هر دو "point-to-point" # # و "ethernet" را مجاز می‌کند. پیش فرض "نه" است. # # # ############################################ ############################### گزینه های ثبت نام ################# ### ############################################ ## ############# # ### SyslogFacility ############################ ## ########## # # # کد شی log برای نوشتن پیام ها را به # # syslog از sshd تنظیم می کند. مقادیر ممکن: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # پیش‌فرض AUTH است. # # # SyslogFacility AUTH # # ## LogLevel ############################################################### ### ######## # # # سطح پرحرفی گزارش sshd را تنظیم می کند. # # گزینه‌های ممکن: # # ساکت # # بی‌صدا # # مرگبار # # خطا # # اطلاعات # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # پیش‌فرض اطلاعات است. # # DEBUG و DEBUG1 معادل یکدیگر هستند. # # DEBUG2 و DEBUG3 بالاترین سطوح خروجی # # اشکال زدایی را تنظیم می کنند. ورود به سیستم در سطح DEBUG # # حریم خصوصی کاربر را تهدید می کند و توصیه نمی شود. # # # اطلاعات سطح Log # # #################################################################### ################################### تغییر مسیر X11 ############ ############################################### #################### # ### X11Forwarding ######################## ### ################ # # # نشان می دهد که آیا زیرسیستم گرافیکی X11 # # تغییر مسیر فعال است یا خیر. می تواند مقادیر "بله" یا "خیر" را بگیرد. # # پیش فرض "خیر" است. # # توجه - فعال کردن تغییر مسیر ساده X11 یک خطر بزرگ برای سرور و مشتریان است، زیرا در # # چنین تغییر مسیری، نمایشگر پراکسی sshd # # اتصالات را از هر آدرسی می پذیرد. از دستور # # X11UseLocalhost برای محدود کردن دسترسی به سرور تغییر مسیر # # X استفاده کنید. شایان ذکر است که # # غیرفعال کردن تغییر مسیر تضمین نمی کند که # # کاربران نتوانند X11 را تغییر مسیر دهند، زیرا با داشتن # # دسترسی به کنسول، آنها همیشه # # redirector خود را نصب می کنند. اگر دستورالعمل UseLogin # # فعال باشد، تغییر مسیر X11 به طور خودکار # # غیرفعال می شود. # # # X11 Forwarding بله # # ## X11UseLocalhost ################################################################# ### # # # # نشان می‌دهد که آیا sshd باید دامنه ارسال # # X11 را به یک آدرس Loopback محلی محدود کند یا # # باید به هر آدرسی اجازه دهد. به طور پیش‌فرض - sshd # # سرور تغییر مسیر X11 را روی آن نصب می‌کند آدرس محلی # # و قسمت نام میزبان متغیر محیطی DISPLAY را روی # # "localhost" تنظیم می کند. شایان ذکر است که # # برخی از مشتریان قدیمی X11 ممکن است با این تنظیمات # # کار نکنند. پیش فرض "بله" است، یعنی. تغییر مسیر # # توسط لوکال هاست محدود شده است، مقدار - "no" - محدودیت های # # را غیرفعال می کند. # # # ## XAuthLocation ########################################## # # # مسیر کامل برنامه xauth را مشخص می کند. # # پیش فرض /usr/bin/X11/xauth است. # # # ## X11DisplayOffset ########################################## تعداد اولین نمایشگر موجود برای sshd را به عنوان تغییر مسیر # # X11 نشان می دهد. این کار به گونه ای انجام می شود که # # X های تغییر مسیر با # # واقعی همپوشانی نداشته باشند. پیش فرض 10 است. # # # X11DisplayOffset 10 # # #################################### ## ######################################## گزینه های مختلف ##### ## ############################################## ######################################## LoginGraceTime ############# ############################### # # # # زمان پس از آن سرور در صورت عدم توانایی کاربر، ارتباط خود را قطع می کند. به طور رضایت بخش # # وارد شوید. مقدار 0 - به کاربر # # اجازه می دهد تا به طور نامحدود وارد شود. پیش فرض 120 (ثانیه) است. # # # LoginGraceTime 120 # # ## MaxAuthTries ################################################################# ### #### # # # حداکثر تعداد تلاش‌های احراز هویت # # مجاز در هر اتصال را نشان می‌دهد. # # هنگامی که تعداد تلاش های ناموفق از نصف مقدار # # تعیین شده بیشتر شود، همه تلاش های بعدی # # ثبت خواهند شد. مقدار پیش فرض 6 است. # # # ## MaxSessions ############################################################### ####### # # # حداکثر تعداد اتصالات همزمان # # را برای هر اتصال شبکه مشخص می کند. پیش‌فرض 10 است. ## # ## MaxStartups ###### # # # حداکثر تعداد # # اتصالات همزمان غیرمجاز به sshd را مشخص می کند. اگر # # تعداد اتصالات از حد مجاز بیشتر شود، همه # # اتصالات اضافی حذف خواهند شد تا زمانی که # # اتصالات فعلی با مجوز موفقیت آمیز # # تکمیل شود یا دوره زمانی مشخص شده در دستورالعمل # # LoginGraceTime منقضی شود. مقدار پیش‌فرض 10 است. # # در صورت تمایل، می‌توانید اتصالات را برای بازنشانی اولیه با # # تنظیم کنید و سه مقدار را به‌عنوان یک پارامتر مشخص کنید که ## با دو نقطه «start:rate:full» از هم جدا شده‌اند (به عنوان مثال: «10:30 :60"). # # sshd یک تلاش برای اتصال را با احتمالی برابر با # # "rate/100" (یعنی 30٪ در مثال ما) رد می کند اگر قبلاً # # "شروع" (10) اتصالات غیرمجاز وجود داشته باشد. # # احتمال به صورت خطی افزایش می‌یابد و اگر تعداد # #اتصالات غیرمجاز به "کامل" برسد، هر # # تلاش برای اتصال رد خواهد شد. # # # ## فشرده سازی ################################################################### # # # # نشان می دهد که فشرده سازی داده ها فعال است یا خیر. می توان # # "بله" - فشرده سازی فعال است. # # "تاخیر" - فشرده سازی تا زمانی که # # کاربر با موفقیت احراز هویت شود به تاخیر می افتد. # # "نه" - فشرده سازی غیرفعال است. # # پیش فرض "تأخیر" است. # # # ## استفاده از ورود ################################################################### #### # # # نشان می دهد که آیا لاگین باید برای یک جلسه تعاملی # # استفاده شود یا خیر. مقدار پیش فرض است". # # شایان ذکر است که لاگین هرگز برای # # اجرای دستورات از راه دور استفاده نشده است. همچنین توجه داشته باشید که استفاده از # # ورود به سیستم، استفاده از # # دستورالعمل X11Forwarding را غیرممکن می‌کند، زیرا ورود به سیستم نمی‌داند با xauth چه کاری باید انجام دهد. اگر دستورالعمل # # UsePrivilegeSeparation فعال باشد، پس از مجوز # # غیرفعال می شود. # # # ## UsePrivilegeSeparation #################################### # # # تعیین می کند که آیا sshd باید امتیازات را جدا کند. اگر بله # #، ابتدا یک فرآیند فرزند # # غیرمجاز برای ترافیک شبکه ورودی ایجاد می شود. پس از مجوز موفقیت آمیز # #، فرآیند دیگری با امتیازات # # کاربر وارد شده ایجاد می شود. هدف اصلی تفکیک امتیاز # # جلوگیری از سوء استفاده از حقوق دسترسی است. # # مقدار پیش فرض مثبت است". # # # Use PrivilegeSeparation بله # # ## StrictModes ################################################################## ### ##### # # # نشان می‌دهد که آیا sshd باید حالت‌های دسترسی و مالکیت # # پوشه‌ها و فایل‌های کاربر را قبل از # # اجازه ورود به کاربر را بررسی کند. این معمولاً به این دلیل است که # # تازه‌کارها اغلب فایل‌های خود را ## برای همه قابل نوشتن می‌کنند. پیش‌فرض «بله» است. # # # StrictModes بله # # ## AcceptEnv ############################################################### ####### # # # مشخص می‌کند که کدام متغیرهای محیطی که # # توسط مشتری ارسال می‌شود، پذیرفته شوند. گزینه SendEnv را در کلاینت ببینید. # # شایان ذکر است که ارسال متغیرها فقط # # برای پروتکل ssh2 امکان پذیر است. متغیرها با نام مشخص می شوند، می توان از # # ماسک استفاده کرد ('*' و '?'). می‌توانید # # متغیرهای متعدد را که با فاصله از هم جدا شده‌اند، مشخص کنید، یا AcceptEnv را به # # چند خط تقسیم کنید. مراقب باشید - برخی از # # متغیرهای محیطی می توانند برای دور زدن # # محیط های کاربر ممنوع استفاده شوند. از این دستورالعمل # # با دقت استفاده کنید. به طور پیش فرض، هیچ # # متغیر محیطی کاربر پذیرفته نمی شود. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ############################################################# مشخص می‌کند که آیا sshd باید # # ~/.ssh/environment و محیط= را در # # ~/.ssh/authorized_keys بپذیرد یا خیر. پیش فرض "نه" است. شایان ذکر است که فعال کردن پردازش محیط ممکن است به کاربران # # این امکان را بدهد که در برخی از پیکربندی‌های # # که از مکانیسم‌هایی مانند # # LD_PRELOAD استفاده می‌کنند، محدودیت‌ها را دور بزنند. # # # # # # # PidFile ####################################### ######## # # # یک فایل حاوی شناسه فرآیند ## (شناسه فرآیند، PID) دیمون SSH را مشخص می‌کند. # # پیش فرض - /var/run/sshd.pid # # # # # ## PrintLastLog ############################ ############## # # # تعیین می‌کند که آیا sshd باید تاریخ و ساعت ## آخرین جلسه را زمانی که کاربر به صورت تعاملی لاگ می‌کند نمایش دهد. # # پیش فرض "بله" است. # # # PrintLastLog بله # # ## PrintMotd ############################################################### ####### # # # مشخص می‌کند که sshd باید /etc/motd # # را هنگام ورود کاربر به صورت تعاملی نمایش دهد یا خیر. در برخی از سیستم های # # (به عنوان مثال اوبونتو) این اطلاعات نیز # # توسط پوسته نمایش داده می شود. # # مقدار پیش فرض مثبت است". # # # PrintMotd no # # ## بنر ############################################################ ########## # # # نشان می دهد که کدام فایل حاوی یک بنر متنی است که # # قبل از روال احراز هویت # # به کاربر نشان داده می شود. این گزینه فقط برای پروتکل ssh2 در دسترس است.# # به طور پیش فرض - چیزی را نشان نمی دهد. # # در اوبونتو، فایل issue.net حاوی عبارت Ubuntu (نسخه)، # # است، به عنوان مثال، برای کارمیک "Ubuntu 9.10" است. می توان از # # برای منحرف کردن مهاجمان احتمالی استفاده کرد، # # با نوشتن در آنجا، به عنوان مثال، "My D-Link Interet Router" =) # # # Banner /etc/issue.net # # ## ChrootDirectory ###### ##### ############################## # # # در صورت مشخص شدن، مسیر # # را به chroot شدن ارائه می دهد. پس از احراز هویت مسیر و تمام محتوای # # آن باید با پوشه های # # متعلق به ابرکاربر مطابقت داشته باشد و توسط سایر کاربران قابل نوشتن # # نباشد. # # مسیر می‌تواند حاوی برچسب‌هایی باشد که در طول فرآیند احراز هویت # # جایگزین می‌شوند: # # %% - جایگزین شده با کلمه "%" # # %h - جایگزین شده با فهرست اصلی # # کاربر تأیید شده # # %u - با نام کاربر تأیید شده # # chroot جایگزین شده است - پوشه باید حاوی تمام فایل های لازم و پوشه های # # برای جلسه کاربر باشد. یک جلسه # # تعاملی حداقل به این موارد نیاز دارد: # # یک پوسته، معمولاً sh # # دستگاه های اساسی در /dev مانند: # # null، zero، stdin، stdout، stderr، تصادفی و tty # # برای یک جلسه انتقال داده با استفاده از بدون sftp # # تنظیمات اضافی در صورت استفاده از ## فرآیند سرور داخلی sftp لازم نیست. برای # # اطلاعات بیشتر به زیرسیستم مراجعه کنید. به طور پیش فرض، chroot انجام نمی شود. ######################################################### # # # باعث می شود دستور مشخص شده اجرا شود. هر دستوری که توسط مشتری ارسال شده یا به # # ~/.ssh/rc نوشته شده است را نادیده می گیرد. دستور از پوسته # # کاربر با گزینه -c فراخوانی می شود. مناسب برای راه اندازی پوسته، فرمان # # یا زیرسیستم. مفیدترین در داخل یک # # بلوک Match. فرمان صادر شده توسط کلاینت # # در متغیر محیطی SSH_ORIGINAL_COMMAND ذخیره می شود. اگر # # دستور "internal-sftp" را مشخص کنید، سرور sftp داخلی # # راه اندازی می شود، که به فایل ها و پوشه های # # اضافی که در دستورالعمل ChrootDirectory توضیح داده شده است، نیازی ندارد. # # # ## زیر سیستم ######################################### ### # # # یک زیرسیستم خارجی را تعریف و پیکربندی می کند (به عنوان مثال # # شبح انتقال فایل). # # آرگومان‌ها نام و دستوری هستند (با # آرگومان‌های ممکن) که هنگام درخواست # # زیرسیستم اجرا می‌شوند. دستور sftp-server زیر سیستم انتقال فایل "sftp" - # # را شروع می کند. علاوه بر این، می توانید # # "internal-sftp" را به عنوان زیرسیستم تعیین کنید - که سرور داخلی sftp را راه اندازی می کند. این می تواند پیکربندی # # را در هنگام استفاده از دستورالعمل # # ChrootDirectory ساده کند. به طور پیش فرض، هیچ زیرسیستم # # فراخوانی نمی شود. فقط مربوط به پروتکل ssh2 است. # # # زیرسیستم sftp /usr/lib/openssh/sftp-server # # ######################################################### ############################ ##################### همخوانی داشتن مسدود کردن ############################ ##################### ## ##################################### # # # # # # # # # # # # # # # # # # # # # # # # فایل را راحت‌تر می‌کند # # قوانین مطابقت را بنویسید. # # MadKox. # # # # دستورالعمل Match نشان دهنده شروع یک بلوک شرطی # # است. اگر تمام معیارهای مشخص شده در خط # # Match برآورده شوند، دستورالعمل‌های خطوط بعدی بلوک اجرا می‌شوند، # # اجازه می‌دهند مقادیر دستورالعمل‌های سراسری در فایل # # sshd_config برای موردی که همان مورد است دور زده شود. معیارهای دستورالعمل # # Match. بلوک به عنوان تمام خطوطی در نظر گرفته می شود که بعد از خط # # با معیار (Match - خطوط) به خط تطبیق بعدی # # یا به انتهای پرونده می رسند. آرگومان دستورالعمل Match یک یا # # چند جفت ورودی معیار است. انواع ورودی‌های احتمالی: # # کاربر # # گروه # # میزبان # # آدرس # # ورودی‌ها می‌توانند حاوی مقادیر منفرد # # (به عنوان مثال User=user) یا چندین مقدار # # باشند که با کاما از هم جدا شده‌اند (User=user1) ,user2). عبارات منظم توضیح داده شده در بخش # # PATTERNS فایل ssh_config نیز می‌تواند از # # استفاده شود. ورودی‌های معیار آدرس # # می‌توانند حاوی آدرس‌هایی با علامت CIDR # # (Address/Mask Length، به عنوان مثال "192.0.2.0/24" یا # # "3ffe:ffff::/32") باشند. شایان ذکر است که طول ماسک # # ارائه شده باید با آدرس مطابقت داشته باشد و همچنین # # طولانی/کوتاه برای آدرس کار نخواهد کرد. # # Match فقط می تواند از # # مجموعه خاصی از دستورالعمل ها به عنوان دستورالعمل استفاده کند: # # AllowTcpForwarding # # Banner # # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAAuthentication # # HostbasedAuthentication # # KbdInteractive #MaxsionAuthentication #MaxsionAuthentication # تصدیق رمز عبور # # PermitOpen # # PermitRootLogin # # RhostsRSAAAuthentication # # RSAAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

    می توانید متن بالا را در sshd_config خود کپی کنید و بعداً از آن برای پیکربندی استفاده کنید.

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

    Port، ListenAddress و AddressFamily

    این سه پارامتر تعیین می‌کنند که سرور شما در کدام پورت‌ها و آدرس‌ها به اتصالات ورودی گوش می‌دهد. اولاً، در صورت امکان، منطقی است که خانواده آدرس‌هایی را که پردازش می‌شوند به آدرس‌هایی که واقعاً استفاده می‌شوند محدود کنیم، یعنی اگر فقط از IPv4 استفاده می‌کنید، IPv6 را غیرفعال کنید و بالعکس. این را می توان با استفاده از پارامتر AddressFamily انجام داد، برای مثال (برای اجازه دادن به IPv4 و رد کردن IPv6):

    آدرسFamily inet

    ثانیاً، توصیه می شود پورت استاندارد (22) را که sshd روی آن گوش می دهد، تغییر دهید. این به دلیل این واقعیت است که متعدد است اسکنرهای شبکهآنها دائماً سعی می کنند به پورت 22 متصل شوند و حداقل با استفاده از لاگین / رمز عبور بی رحمانه از پایگاه داده خود دسترسی پیدا کنند. حتی اگر احراز هویت رمز عبور را غیرفعال کرده باشید، این تلاش‌ها به‌شدت لاگ‌ها را مسدود می‌کنند و (در مقادیر زیاد) می‌توانند بر سرعت سرور ssh تأثیر منفی بگذارند. اگر به دلایلی نمی‌خواهید پورت استاندارد را تغییر دهید، می‌توانید از ابزارهای خارجی مختلف برای مبارزه با فورس‌های بی‌رحم، به عنوان مثال fail2ban و موارد داخلی مانند MaxStartups استفاده کنید.
    شما می توانید پورت را به عنوان یک مقدار مطلق برای همه اینترفیس ها با استفاده از دستورالعمل Port یا به عنوان یک مقدار خاص برای هر رابط با استفاده از دستورالعمل ListenAddress تنظیم کنید. مثلا:

    پورت 2002

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    دسترسی از راه دور برای ابرکاربر را رد کنید

    به طور پیش فرض، دسترسی ریشه با رمز عبور ممنوع است (با کلید امکان پذیر است) - گزینه PermitRootLogin روی بدون رمز عبور تنظیم شده است. اما، به شرطی که به طور پیش فرض در اوبونتو، کاربر اضافه شده در هنگام نصب سیستم، توانایی حل تمام کارهای اداری را از طریق sudo داشته باشد، این قابلیت را ایجاد کنید. دسترسی ریشهبه سیستم از طریق ssh - غیر منطقی به نظر می رسد (حتی با احراز هویت کلید). توصیه می شود آن را به طور کامل خاموش کنید. این گزینه، یا از آن فقط در حالت فقط دستورات اجباری استفاده کنید. شما می توانید دسترسی root را به این صورت غیرفعال کنید:

    PermitRootLogin شماره

    احراز هویت رمز عبور

    احراز هویت رمز عبور، که به طور پیش فرض مجاز است، عملا ابتدایی ترین روش مجوز در sshd است. از یک طرف، این امر پیکربندی و اتصال کاربران جدید را ساده می کند (کاربر فقط باید ورود به سیستم / رمز عبور خود را بداند)، از طرف دیگر، رمز عبور همیشه قابل حدس است و کاربران اغلب از ایجاد رمزهای عبور پیچیده و طولانی غفلت می کنند. . ربات‌های ویژه دائماً سرورهای ssh قابل دسترسی از اینترنت را اسکن می‌کنند و سعی می‌کنند با استفاده از لاگین‌ها/گذرواژه‌های بی‌رحمانه از پایگاه داده خود وارد آن‌ها شوند. اکیداً توصیه می شود از احراز هویت رمز عبور استفاده نکنید. شما می توانید آن را به این صورت غیرفعال کنید:

    شماره احراز هویت رمز عبور

    اگر به دلایلی همچنان می خواهید از احراز هویت رمز عبور استفاده کنید، مطمئن شوید که هیچ کس نمی تواند با یک رمز عبور خالی وارد سیستم شود. برای انجام این کار، دستور PermitEmptyPasswords را تنظیم کنید:

    PermitEmptyPasswords no

    پروتکل های SSH1 و SSH2

    همانطور که قبلا ذکر شد، sshd می تواند با پروتکل های SSH1 و SSH2 کار کند. با این حال، استفاده از SSH1 ناامن به شدت ممنوع است. شما می توانید sshd را مجبور کنید که فقط با پروتکل SSH2 کار کند:

    احراز هویت بر اساس کلیدهای SSH2 RSA

    ترجیح داده شده ترین روش مجوز، احراز هویت بر اساس کلیدهای SSH2 RSA است. با این روش کاربر یک جفت کلید در سمت خود تولید می کند که یکی از آنها مخفی و دیگری عمومی است. کلید عمومی در سرور کپی می شود و برای تأیید هویت کاربر استفاده می شود. برای اطلاعات بیشتر در مورد ایجاد یک جفت کلید و نحوه قرار دادن آنها در سرور، به توضیحات کلاینت SSH مراجعه کنید. شما می توانید احراز هویت کلید عمومی را به این صورت فعال کنید:

    PubkeyAuthentication بله

    سرور باید بداند کلید عمومی کاربر را کجا جستجو کند. برای این کار از یک فایل ویژه authorized_keys استفاده می شود. نحو آن می تواند به صورت زیر باشد:

    # نظرات فقط روی یک خط جدید نوشته می‌شود # ظاهر کلی ورودی‌ها در فایل کلیدهای_مجاز # [گزینه‌ها] نوع_کلید (ssh-rsa یا ssh-dss) بسیار_طول_رشته_نامفهوم برای انسان عادی [login@host] ssh-rsa AAAAB3Nza...LiPk == [ایمیل محافظت شده] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [ایمیل محافظت شده] command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [ایمیل محافظت شده]

    شما می توانید یک فایل مشترک با کلیدها یا یک فایل برای هر کاربر را مشخص کنید. روش دوم راحت‌تر و امن‌تر است، زیرا اولاً می‌توانید ترکیب کلیدهای مختلفی را برای هر کاربر مشخص کنید و ثانیاً دسترسی به کلید عمومی کاربر را محدود کنید. می توانید با استفاده از دستور AuthorizedKeysFile یک فایل را با کلیدها مشخص کنید:

    AuthorizedKeysFile %h/.ssh/my_keys

    برای کاربر طرحواره - فایل
    یا

    AuthorizedKeysFile /etc/ssh/authorized_keys

    برای طرحی با فایل مشترک به طور پیش فرض، سرویس گیرنده SSH به دنبال کلیدها در فایل ~/.ssh/authorized_keys می گردد.

    بیشتر در مورد ایمنی

    تنظیمات اضافی

    کاربران و گروه ها

    اگر کاربران زیادی روی سرور خود زندگی می کنند و می خواهید از طریق ssh فقط به تعداد کمی از آنها دسترسی داشته باشید، می توانید از دستورالعمل های DenyUsers، AllowUsers، DenyGroups و AllowGroups استفاده کنید. برای اطلاعات بیشتر در مورد این دستورالعمل ها، به نظرات در مثال sshd_config مراجعه کنید.

    گزینه های وضعیت اتصال

    به طور پیش فرض، در بین روش های تعیین وضعیت اتصال، تنها روش بررسی اتصال TCP فعال است - TCPKeepAlive، با این حال، sshd می تواند حالت های اتصال را به روش های راحت تر و ایمن تر تعیین کند. برای جزئیات بیشتر به بخش مربوطه در مثال sshd_config مراجعه کنید.

    کارایی. MaxStartups

    پورت حمل و نقل

    تغییر مسیر X11

    در سرور، در فایل /etc/ssh/sshd_config، پارامتر را تنظیم کنید (به طور پیش فرض فعال است):

    ForwardX11 بله

    در سرویس گیرنده، پارامترها را در فایل /etc/ssh/ssh_config تنظیم کنید (به طور پیش فرض غیرفعال است):

    ForwardAgent بله ForwardX11 بله

    شما می توانید آن را روی کلاینت به این صورت اجرا کنید: ssh yurauname@serverip firefox. یا ابتدا به ssh yurauname@serverip بروید و سپس مثلا sudo synaptic را اجرا کنید.

    SFTP

    sshd به طور پیش فرض دارای یک سرور SFTP داخلی است. پروتکل SFTP (SSH انتقال فایلپروتکل) - پروتکل SSH برای انتقال فایل ها. این برای کپی و انجام سایر عملیات فایل از طریق یک اتصال مطمئن و ایمن طراحی شده است. به عنوان یک قاعده، پروتکل SSH2 به عنوان پروتکل پایه ارائه دهنده اتصال استفاده می شود. برای فعال کردن پشتیبانی SFTP، خط را به sshd_config اضافه کنید

    زیرسیستم sftp /usr/lib/openssh/sftp-server

    به طور پیش فرض، پشتیبانی از SFTP فعال است.

    با استفاده از معیارها بخشنامه مسابقه

    راه اندازی یک کلاینت SSH

    ورود با استفاده از یک کلید امن ترین در نظر گرفته می شود و در بیشتر موارد این ویژگی در سمت سرور فعال است، بنابراین برای استفاده از آن نیازی به حقوق ابرکاربر نیست. در ماشین مشتری ما یک کلید تولید می کنیم:

    ssh-keygen -t rsa

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

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub user@ server

    همین است، می توانید وارد شوید.

    هنگامی که ssh روی یک پورت غیر استاندارد اجرا می شود:

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port user@server"

    اگر خطایی رخ داد: پورت بد "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    سعی کنید پارامترها را در گیومه قرار دهید:

    Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p port user@server""

    هنگام اتصال به یک سیستم از راه دور، استفاده از ابزار صفحه نمایش راحت است.

    راه اندازی دایرکتوری ssh راه دور در Nautilus

    نصب دایرکتوری راه دور با استفاده از sshfs

    نصب یک دایرکتوری راه دور در یک فهرست محلی

    sshfs user@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

    در حال نصب

    Fusermount -u ~/ sshsfdir

    نام مستعار SSH

    هنگام استفاده از چندین سرور با پارامترهای دسترسی مختلف (پورت غیر استاندارد، نام میزبان طولانی، ورود به سیستم غیر از محلی و غیره)، گاهی اوقات خسته کننده است که هر بار دوباره تمام تنظیمات اتصال را وارد کنید. برای سهولت در این کار، می توانید از نام مستعار استفاده کنید.

    تنظیمات در ~/.ssh/config برای یک کاربر و در /etc/ssh/ssh_config به صورت سراسری برای همه کاربران ذخیره می شود.

    پیکربندی مثال ممکن است چندین سرور توضیح داده شود. جزئیات بیشتر در man ssh_config(با آن اشتباه نشود sshd_config)

    Host AliasName # نام میزبان دلخواه HostName 1.2.3.4 # می‌توانید هم IP و هم نام میزبان را تعیین کنید (اگر DNS در حال اجرا باشد) User YourUserName # اگر کاربر با کاربر محلی مطابقت ندارد Port YourSSHPort # اگر یک پورت غیر استاندارد باشد

    پس از این می توانید با دستور به سرور متصل شوید

    ssh نام مستعار

    ssh-agent

    تشخیص مشکلات اتصال

      تجزیه و تحلیل گزارش اتصال:

    میزبان ssh -vvv user@

      تجزیه و تحلیل فایل های پیکربندی مشتری و سرور.

    محل فایل های پیکربندی را می توان در آن پیدا کرد

    مرد ssh مرد sshd

    استفاده از کارت های هوشمند

    1. ایجاد یک گواهی و صدور یک کلید عمومی، و همچنین بخش مشتری در Windows + Putty SC، در وب سایت شرح داده شده است: http://habrahabr.ru/post/88540/ افزونه Key Manager که در آنجا توضیح داده شده است. فقط در نسخه های قدیمی فایرفاکس موجود است. تست شده بر روی نسخه 3.5 برای ویندوز. لینک مستقیم به افزونه: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. آماده سازی سرور. باید مطمئن شوید که پیکربندی sshd شما اجازه احراز هویت با استفاده از کلیدهای عمومی را می دهد. برای انجام این کار، باید مقدار پارامتر PubkeyAuthentication را در فایل “sshd_config” به “yes” مشخص کنید. سپس کلید عمومی خود را که قبلاً (در یک خط) به دست آورده ایم به فایل "~/.ssh/authorized_keys" اضافه می کنیم. لطفاً توجه داشته باشید که فایل ".ssh/authorized_keys" در فهرست اصلی کاربر قرار دارد که سپس با استفاده از کلید عمومی وارد سیستم می شود.

    3. بخش مشتری در لینوکس. شما باید بسته OpenSSH را بدون پارامتر بازسازی کنید. فقط توصیه می شود که پیشوندهای دایرکتوری را مشخص کنید، برای مثال –prefix=/usr. همچنین باید توجه داشته باشید که فایل های پیکربندی در /usr/etc هستند. قبل از شروع، به بسته های زیر نیاز دارید: opensc-lite-devel، zlib-devel، openssl-devel. درایور کارت هوشمند را نصب کنید. برای راحتی، در پیکربندی ssh_config (که با sshd_config اشتباه نشود)، مسیر کتابخانه pkcs را مشخص کنید: PKCS11Provider=<путь к библиотеке>

    4. در کلاینت، ssh user@host را اجرا کنید اگر کارت هوشمند (توکن) متصل باشد، از شما یک رمز عبور خواسته می شود و به جلسه SSH وارد می شوید.

    مشکلات احتمالیاستفاده كردن

    کلیدهای ترکیبی معمولی Ctrl + S که در بسیاری از ویرایشگرها برای ذخیره اصلاحات استفاده می شود، هنگام کار در ترمینال با سرور ssh، منجر به اجرای دستور XOFF می شود که ظاهراً شبیه یک توقف جلسه است. با این حال، اینطور نیست. سرور به پذیرش کاراکترها و دستورات ورودی ادامه می دهد، اما آن را روی صفحه نمایش نمی دهد. برای رهایی از این مخمصه، کافی است از ترکیب Ctrl + Q استفاده کنید، در نتیجه حالت XON را دوباره روشن کنید.

    پیوندها

    یعنی user1 را می توان هم برای خودش - در فایل /home/user1/.ssh/keys) و هم برای کاربر دیگری ثبت کرد که به او امکان می دهد از رایانه خود هم "زیر خودش" و هم تحت "دیگر" وارد شود.

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

    راه اندازی SSH

    راه اندازی برای یک سرور اختصاصی، VDS، VPS در دبیان، اوبونتو انجام خواهد شد. فایل پیکربندی در اینجا قرار دارد: /etc/ssh/sshd_config.
    اگر هاست معمولی دارید، همه چیز باید همانطور که باید پیکربندی شود، به بخش بروید.

    به طور پیش فرض، دیمون SSHD (که ما در حال ایجاد تغییرات در آن هستیم) نیازی به تنظیمات ندارد و به خوبی کار می کند. ما فقط چند تغییر کوچک ایجاد خواهیم کرد تا دسترسی افراد ناخواسته به سرور را محدود کنیم.

    اگر تغییرات نادرستی در فایل پیکربندی ایجاد کنید، ممکن است دسترسی به سرور از طریق ssh را از دست بدهید، بنابراین مطمئن شوید که گزینه های جایگزینبرای دسترسی به آن، به عنوان مثال، با استفاده از کنترل پنل ISPmanager.

    چگونه دسترسی SSH را محدود کنیم

    همه تغییرات در /etc/ssh/sshd_config انجام می شود
    برای اعمال تغییرات، باید

    پورت را تغییر دهید

    پورت 9724

    اکنون، هنگام مجوز، باید به جای پورت استاندارد 22، 9724 را مشخص کنید.
    این روش در برابر اکثر ربات های هکر ساده ای که در پورت های استاندارد ضربه می زنند بسیار ساده و موثر است. نکته اصلی در اینجا این است که با سرویس های دیگر تضاد ایجاد نکنید و شماره ای را انتخاب کنید که آشکارا استفاده نشده است.

    ارتباط را با استفاده از پروتکل قدیمی غیرفعال کنید

    در اینجا تعریف می کنیم که ارتباط فقط با استفاده از پروتکل v2 امکان پذیر است

    اگر وارد نشده اید ریشه، قبل از تمام دستورات کنسول باید sudo را اضافه کنید - مخفف آن است جایگزین کاربر و DO- جایگزین کاربر و انجام (تحت او). به عنوان مثال، به شما اجازه می دهد تا دستورات را به عنوان یک ابرکاربر اجرا کنید ریشه.

    تعداد تلاش های مجوز را کاهش دهید

    MaxAuthTries 2

    تعداد تلاش برای رمز عبور. پیش فرض 6 است. اگر جستجو ناموفق باشد، جلسه ارتباط خاتمه می یابد.

    زمان انتظار مجوز را کاهش دهید

    LoginGraceTime 30s

    به طور پیش فرض، یک جلسه مجوز می تواند 120 ثانیه طول بکشد. بعد از این مدت تمام می شود. 2 دقیقه برای مجوز بیش از حد است؛ در تمام این مدت سرور اتصال را باز نگه می دارد که بسیار غیر منطقی است. نیم دقیقه کافی است.

    دسترسی IP را ببندید

    قبل از تنظیم محدودیت های IP، مطمئن شوید که در صورت بروز خطا در تنظیمات و در نتیجه ممنوعیت IP خود، راه دیگری برای دسترسی مجدد به سرور خواهید داشت.

    اگر فقط به دسترسی نیاز دارید، ساده ترین و مطمئن ترین راه این است که دسترسی را از همه جا به جز IP خود یا اگر پویا است، محدوده IP را مسدود کنید.

    1. /etc/hosts.allow را باز کنید و SSHD را در آنجا اضافه کنید: 192.168.1.1

      که در آن 192.168.1.1 IP شما است. اگر یک IP پویا دارید، یک IP با ماسک زیر شبکه تعریف کنید و به جای IP، زیر شبکه خود را یادداشت کنید، به عنوان مثال:

      SSHD: 192.168.0.0/16

    2. /etc/hosts.deny را باز کنید و در آنجا اضافه کنید: SSHD: ALL

    راه دیگری برای محدود کردن دسترسی از طریق IP

    می توانید از دستورالعمل زیر استفاده کنید:

    AllowUsers = *@1.2.3.4

    در اینجا ما فقط اجازه دسترسی به IP 1.2.3.4 را می دهیم

    مجوز SSH توسط کلیدها

    تنظیم مجوز ssh بدون رمز عبور بسیار ایمن تر، راحت تر و صحیح تر خواهد بود. برای این منظور از مجوز کلید استفاده خواهد شد.

    بنابراین در اینجا دستورالعمل است.

    شما اولین VPS یا حتی یک سرور را بلافاصله خریداری کردید. مطمئناً شما یک پنل وب برای مدیریت آن دارید. اما ادمین های سخت همیشه از طریق کنسول سر می زنند 😉 بنابراین، ما باید یاد بگیریم که چگونه این کار را انجام دهیم. در این درس برنامه PuTTY را نصب می کنیم و از طریق پروتکل SSH به سرور متصل می شویم و نحوه تعیین فضای اشغال شده و خالی سرور را یاد می گیریم.

    برنامه Putty برای اتصال به سرور از طریق پروتکل SSH

    دانلود Putty از سایت putty.org برای خودم نسخه “ برای ویندوزدر Intel x86 - PuTTY: putty.exe"

    آرشیو را باز کنید و برنامه را اجرا کنید.

    این همان چیزی است که پنجره برنامه پس از راه اندازی به نظر می رسد. من قبلاً آدرس IP سرور خود را در قسمت "نام میزبان (یا آدرس IP)" وارد کرده ام:

    دامنه یا آدرس IP سرور خود را وارد کرده و روی دکمه Open کلیک کنید. یک پنجره خط فرمان باز می شود. از ما نام کاربری و رمز عبور می خواهد. ابتدا لاگین و سپس رمز عبور خود را وارد کنید. توجه کنید هنگام وارد کردن رمز، کاراکترها روی صفحه چاپ نمی شوند، حتی ستاره های *** چاپ نمی شوند. بنابراین، رمز عبور را مانند کورکورانه وارد می کنیم. Enter کرده و Enter را فشار دهید. اگر رمز عبور به درستی وارد شده باشد، به کنسول مدیریت سرور وارد خواهید شد. خطی با آخرین زمان ورود و اطلاعات مربوط به سیستم عامل نمایش داده می شود.

    دستورات در کنسول

    pwd

    df

    دستور df میزان فضای آزاد و استفاده شده روی سرور را در تمام سیستم های فایل نصب شده نشان می دهد

    دو

    دستور du نشان می دهد که یک پوشه یا فایل چقدر فضای اشغال می کند.
    دستور مثال:

    Du -h /خانه/

    این دستور نشان می دهد که دایرکتوری /home/ چقدر فضای اشغال می کند.

    همین. اولین آشنایی با اتصال به سرور از طریق SSH و برنامه putty به پایان رسید. با استفاده از این اطلاعات می توانید به سرور بروید و ببینید که داده ها چقدر فضای روی آن را اشغال می کنند.



    
    بالا