وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

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

0 0
زمان لازم برای مطالعه: 4 دقیقه



اگر مرتباً از طریق SSH به چندین سیستم راه دور متصل می شوید، آدرس های IP مختلف، نام های کاربری، پورت های غیر استاندارد و command-line گزینه ها می توانند چالش برانگیز یا حتی غیرممکن باشند.

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

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

پیش نیازها

ما فرض می‌کنیم که از لینوکس یا macOS با یک کلاینت OpenSSH استفاده می‌کنید.

محل فایل پیکربندی SSH

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

را ~/.ssh دایرکتوری به طور خودکار زمانی که کاربر اجرا می کند ایجاد می شود ssh
فرمان برای اولین بار اگر دایرکتوری وجود نداشته باشد روی سیستم خود را ایجاد کنید با:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

به طور پیش فرض، فایل پیکربندی SSH ممکن است وجود نداشته باشد، بنابراین ممکن است لازم باشد آن را با استفاده از آن ایجاد کنید touch دستور:

touch ~/.ssh/config

برای امنیت، فایل باید فقط توسط کاربر قابل خواندن و نوشتن باشد و توسط دیگران قابل دسترسی نباشد:

chmod 600 ~/.ssh/config

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

فایل پیکربندی SSH ساختار زیر را دارد:

Host hostname1
    SSH_OPTION value
    SSH_OPTION value

Host hostname2
    SSH_OPTION value

Host *
    SSH_OPTION value

محتویات فایل پیکربندی کلاینت SSH در بند (بخش) سازماندهی شده است.

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

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

را Host مقدار می‌تواند یک نام میزبان، آدرس IP، یا الگو، یا فهرستی از الگوها باشد. هر الگو می‌تواند حاوی صفر یا چند کاراکتر بدون فاصله یا یکی از مشخص‌کننده‌های الگوی زیر باشد:

  • * – با صفر یا چند کاراکتر مطابقت دارد. (مثلا Host * با همه میزبان ها مطابقت دارد، در حالی که 192.168.0.* مسابقات میزبان در 192.168.0.0/24 زیر شبکه.)
  • ? – دقیقاً با یک شخصیت مطابقت دارد. (به عنوان مثال الگو، Host 10.10.0.? با همه میزبان ها مطابقت دارد 10.10.0.[0-9] محدوده.)
  • ! – هنگامی که در شروع یک الگو استفاده می شود، مطابقت را نفی می کند. (مثلا Host 10.10.0.* !10.10.0.5 با هر کدام مطابقت دارد host در 10.10.0.0/24 زیر شبکه به جز 10.10.0.5.)

کلاینت SSH فایل را از بالا به پایین پردازش می کند. اگر بیش از یک الگو مطابقت داشته باشد، گزینه‌های اولین مصراع منطبق اولویت دارند. بنابراین بیشتر host-اعلامیه های خاص باید در ابتدای فایل داده شوند و موارد کلی تر لغو شود (مانند Host *) در انتهای فایل.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از ویرایشگر متن VIM - مقدمه ای برای توسعه دهندگان

با تایپ کردن می توانید لیست کاملی از گزینه های SSH موجود را پیدا کنید man ssh_config در شما terminal یا با مراجعه به مرد ssh_config page

.

فایل کانفیگ SSH توسط برنامه های دیگری مانند scp
، sftp
، و rsync
.

مثال پایه

اکنون که اصول اولیه فایل پیکربندی SSH را پوشش دادیم، به مثال زیر نگاه می کنیم.

به طور معمول، هنگام اتصال به یک سرور راه دور از طریق SSH، نام کاربری راه دور، نام میزبان و پورت را مشخص می کنید. به عنوان مثال، به عنوان یک کاربر با نام وارد شوید john به a host تماس گرفت dev.example.com روی بندر 2322 از خط فرمان، باید تایپ کنید:

ssh john@dev.example.com -p 2322

برای اتصال به سرور با استفاده از همان گزینه های ارائه شده در دستور بالا با تایپ کردن ssh dev، خطوط زیر را در خود اضافه کنید "~/.ssh/config فایل:

~/.ssh/config
Host dev
    HostName dev.example.com
    User john
    Port 2322

حالا وقتی تایپ می کنید ssh dev، سرویس گیرنده ssh فایل پیکربندی را می خواند و از جزئیات اتصال که برای آن مشخص شده است استفاده می کند dev host:

ssh dev

مثال پیشرفته: الگوها و تقدم

این مثال اطلاعات دقیق تری در مورد host الگوها و تقدم گزینه

فایل نمونه زیر را در نظر بگیرید:

Host targaryen
    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key

Host tyrell
    HostName 192.168.10.20

Host martell
    HostName 192.168.10.50

Host *ell
    user oberyn

Host * !martell
    LogLevel INFO

Host *
    User root
    Compression yes
  • وقتی تایپ میکنی ssh targaryen، کلاینت ssh فایل را می خواند و گزینه های مربوط به اولین مسابقه را اعمال می کند Host targaryen. سپس بندهای بعدی را یکی یکی از نظر الگوی منطبق بررسی می کند. تطبیق بعدی است Host * !martell (منظور همه میزبان ها به جز martell) و گزینه اتصال را از این بند اعمال می کند. آخرین تعریف Host * همچنین مطابقت دارد، اما کلاینت ssh فقط آن را می گیرد Compression گزینه زیرا User گزینه قبلاً در قسمت تعریف شده است Host targaryen بند

    لیست کامل گزینه هایی که هنگام تایپ استفاده می شوند ssh targaryen به شرح زیر است:

    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key
    LogLevel INFO
    Compression yes
  • هنگام دویدن ssh tyrell تطبیق host الگوها عبارتند از: Host tyrell، Host *ell، Host * !martell و Host *. گزینه های مورد استفاده در این مورد عبارتند از:

    HostName 192.168.10.20
    User oberyn
    LogLevel INFO
    Compression yes
  • اگر بدوید ssh martell، تطبیق host الگوها عبارتند از: Host martell، Host *ell و Host *. گزینه های مورد استفاده در این مورد عبارتند از:

    HostName 192.168.10.50
    User oberyn
    Compression yes
  • برای تمام اتصالات دیگر، کلاینت ssh از گزینه های مشخص شده در Host * !martell و Host * بخش ها

پیشنهاد می‌کنیم بخوانید:  روش نصب Go بر روی CentOS 8

گزینه های لغو

کلاینت SSH پیکربندی خود را به ترتیب اولویت زیر می خواند:

  1. گزینه های مشخص شده از خط فرمان
  2. گزینه های تعریف شده در ~/.ssh/config.
  3. گزینه های تعریف شده در کل سیستم /etc/ssh/ssh_config فایل

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

Host dev
    HostName dev.example.com
    User john
    Port 2322

و شما می خواهید از همه گزینه های دیگر استفاده کنید مگر اینکه به عنوان کاربر متصل شوید root به جای john به سادگی کاربر را مشخص کنید روی خط فرمان:

ssh -o "User=root" dev

را -F (configfile) گزینه به شما امکان می دهد یک فایل پیکربندی جایگزین برای هر کاربر را مشخص کنید.

برای اینکه به کلاینت SSH بگویید تمام گزینه های مشخص شده در فایل پیکربندی SSH را نادیده بگیرد، از:

ssh -F /dev/null user@example.com

نتیجه گیری

ما به شما نشان داده‌ایم که چگونه فایل پیکربندی SSH کاربر خود را برای ساده‌سازی مدیریت چندین اتصال راه دور پیکربندی کنید.

همچنین ممکن است بخواهید احراز هویت مبتنی بر کلید SSH را تنظیم کنید تا بتوانید بدون وارد کردن رمز عبور به سرورهای لینوکس خود متصل شوید.

به طور پیش فرض، SSH گوش می دهد روی پورت 22. تغییر پورت پیش فرض SSH با کاهش خطر حملات خودکار، یک لایه امنیتی اضافی به سرور شما اضافه می کند.

اگر سوالی دارید، لطفا در زیر نظر دهید.

ssh
terminal
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1404-12-15 16:14:07

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید