SSH، مخفف Secure Shell، یک پروتکل شبکه رمزگذاری شده است که برای ایجاد اتصالات امن بین رایانهها استفاده میشود. این امر به کاربران امکان میدهد از راه دور به سیستمها دسترسی داشته باشند، دستورات را اجرا کرده و فایلها را منتقل کنند و در عین حال از حریم خصوصی و امنیت دادههای خود محافظت نمایند. PowerShell یک پوسته خط فرمان و زبان اسکریپت نویسی قدرتمند برای ویندوز است که به کاربران امکان میدهد وظایف مختلف اداری را خودکار کنند. با ترکیب SSH و PowerShell، میتوانید به طور موثر سیستمهای لینوکس را از محیط ویندوز مدیریت نمایید. این مقاله به شما نحوه نصب و استفاده از SSH در PowerShell برای اتصال به سیستمهای راه دور لینوکس، اجرای دستورات، کپی فایلها و موارد دیگر را آموزش میدهد.
SSH چیست؟
SSH که مخفف Secure Shell یا Secure Socket Shell می باشد، یک پروتکل شبکه برای اتصال امن به رایانه از راه دور است. این پروتکل جایگزینی امن برای پروتکلهای ناامن قبلی مانند Telnet و rlogin ارائه میدهد. مزایای استفاده از SSH عبارتاند از:
· امنیت: SSH تمام ترافیک بین کلاینت و سرور را رمزگذاری میکند، به این معنی که اطلاعات شما در برابر هکرها و رهگیری محافظت میشود.
· احراز هویت: SSH از چندین روش احراز هویت مختلف از جمله رمز عبور، کلیدهای عمومی و احراز هویت دو عاملی برای تایید هویت کاربران پشتیبانی میکند.
· قابلیت انعطافپذیری: SSH میتواند برای طیف گستردهای از وظایف از جمله مدیریت از راه دور، انتقال فایل و اجرای دستورات استفاده شود.
· SSH به طور کلی توسط مدیران سیستم، توسعه دهندگان و هر کسی که نیاز به دسترسی امن به رایانههای راه دور دارد استفاده میشود.
در اینجا چند نمونه از نحوه استفاده از SSH آورده شده است:
· یک مدیر سیستم میتواند از SSH برای اتصال به یک سرور لینوکس از راه دور و مدیریت آن استفاده کند.
· یک توسعه دهنده میتواند از SSH برای اتصال به یک سرور توسعه از راه دور و استقرار کد استفاده نماید.
· یک کاربر میتواند از SSH برای اتصال به یک رایانه شخصی خانگی از راه دور و دسترسی به فایلها و برنامههای خود استفاده کند.
برای استفاده از SSH، به یک کلاینت SSH و یک سرور SSH نیاز دارید. کلاینتهای SSH برای انواع مختلف سیستم عامل از جمله ویندوز، macOS و لینوکس در دسترس هستند. سرورهای SSH را میتوان بر روی رایانههای لینوکس، macOS و ویندوز نصب کرد. پس از نصب کلاینت و سرور SSH، میتوانید با استفاده از آدرس IP یا نام میزبان سرور و اطلاعات ورود به سیستم خود به رایانه راه دور متصل شوید. برای درک کامل مفهوم SSH توصیه میکنیم محتوای SSH چیست و چه کاربردی دارد؟ را حتما مطالعه کنید.
پاورشل چیست؟
پاورشل یک پوسته خط فرمان و زبان اسکریپت نویسی قدرتمند برای سیستم عامل ویندوز می باشد که توسط مایکروسافت توسعه یافته است. این ابزار به کاربران امکان میدهد وظایف اداری را به طور خودکار انجام داده، سیستمها را مدیریت، پیکربندیها را تنظیم و با برنامهها و خدمات مختلف تعامل داشته باشند. این ابزار توسط طیف گستردهای از کاربران از جمله مدیران سیستم، مهندسین شبکه، توسعه دهندگان و کاربران نهایی استفاده میشود. پاورشل یک ابزار قدرتمند و همه کاره است که میتواند برای طیف گستردهای از وظایف استفاده شود. برای آشنایی کامل با پاورش محتوای پاورشل چیست؟ را بخوانید.
برخی از ویژگیهای کلیدی پاورشل عبارتاند از:
· مبتنی بر.NET: پاورشل بر روی چارچوب.NET مایکروسافت ساخته شده است که به آن قدرت و انعطافپذیری زیادی میدهد.
· اشیا: پاورشل همه چیز را به عنوان یک شیء نشان میدهد که به شما امکان میدهد دادهها را به طور موثر مدیریت کنید و وظایف را خودکار کنید.
· دستورات: پاورشل دارای مجموعه گستردهای از دستورات داخلی است که میتوان از آنها برای انجام طیف گستردهای از وظایف استفاده کرد.
· اسکریپت نویسی: پاورشل یک زبان اسکریپت نویسی قدرتمند را ارائه میدهد که به شما امکان میدهد وظایف پیچیده را خودکار کنید.
· ماژولها: پاورشل از ماژولها پشتیبانی میکند که قابلیتهای آن را گسترش میدهد. هزاران ماژول شخص ثالث در دسترس هستند که میتوانید از آنها برای انجام وظایف خاص استفاده کنید.
آموزش اتصال SSH به سرور لینوکس از طریق پاورشل
استفاده از SSH در PowerShell ویندوز با استفاده از ماژول Posh-SSH به شما امکان مدیریت و کنترل سرورهای لینوکس را بدون نیاز به استفاده از نرمافزارهای جانبی میدهد. با استفاده از دستورات قدرتمند پاورشل و قابلیتهای SSH، شما میتوانید به صورت مستقیم با سرورهای لینوکس ارتباط برقرار کنید و عملیات مختلف را انجام دهید. در ادامه دو روش مختلف برای اتصال SSH به سرور لینوکس از طریق پاورشل را بررسی خواهیم کرد.
روش 1: استفاده از ماژول Posh-SSH
بررسی در دسترس بودن ماژول SSH
قبل از شروع کار با SSH در PowerShell، باید از نصب و فعال بودن ماژول SSH اطمینان حاصل کنید. برای این کار، دستور زیر را در PowerShell اجرا نمایید:
Get-Command -Module SSH-Sessions
اگر ماژول SSH به درستی نصب و فعال شده باشد، لیستی از دستورات موجود در این ماژول نمایش داده میشود. در غیر این صورت، پیغام خطایی مبنی بر عدم وجود ماژول دریافت خواهید کرد.
نصب ماژول SSH
اگر ماژول SSH نصب نشده باشد، میتوانید به راحتی با استفاده از دستور زیر آن را نصب کنید:
Install-Module -Name PosH-SSH
پس از اتمام نصب، دستور Get-Command -Module SSH-Sessions را مجددا اجرا نمایید تا لیست دستورات موجود در ماژول SSH را مشاهده کنید.
اتصال به سرور لینوکس
با نصب و فعال شدن ماژول SSH، میتوانید به سرورهای لینوکس از راه دور متصل شوید. برای این کار، از دستور New-SSHSession استفاده کنید. به عنوان مثال، برای اتصال به سروری با نام linuxserver با نام کاربری myuser و رمز عبور mypassword از دستور زیر استفاده نمایید:
New-SSHSession -ComputerName linuxserver -Credential New-Object System.Management.Automation.PSCredential"myuser", ConvertTo-SecureString "mypassword" -AsPlainText -Force
پس از برقراری اتصال، میتوانید از دستورات PowerShell برای مدیریت و اجرای دستورات در سرور لینوکس استفاده کنید. به عنوان مثال، برای مشاهده لیست فایلهای موجود در دایرکتوری /home/myuser از دستور زیر استفاده نمایید:
ls -l /home/myuser
نکات مهم
· برای اطلاعات بیشتر در مورد دستورات SSH در PowerShell، میتوانید از دستور Get-Help New-SSHSession استفاده کنید.
· همچنین میتوانید از ماژولهای SSH شخص ثالث برای افزودن قابلیتهای بیشتر به اتصالات SSH خود استفاده نمایید.
روش 2: استفاده از اسکریپت SSH
روش دیگر برای اتصال به سرور لینوکس از طریق PowerShell، استفاده از اسکریپت SSH می باشد. مراحل استفاده از اسکریپت SSH به صورت زیر است.
دانلود اسکریپت SSH
اسکریپتهای SSH مختلفی در دسترس هستند که میتوانید به صورت آنلاین دانلود کنید. به عنوان مثال، میتوانید اسکریپت Invoke-SSH را از GitHub دانلود نمایید:
Invoke-WebRequest -Uri https://raw.githubusercontent.com/PowerShell-Tools/Invoke-SSH/master/Invoke-SSH.ps1 -OutFile Invoke-SSH.ps1
اجرای اسکریپت SSH
./Invoke-SSH.ps1 -ComputerName <نام_سرور> -Credential <نام_کاربری:رمز_عبور>
<نام_سرور> را با نام یا آدرس IP سرور لینوکس خود جایگزین کنید.
<نام_کاربری:رمز عبور> را با اطلاعات ورود به سیستم خود در سرور لینوکس جایگزین نمایید.
قطع اتصال از سرور لینوکس
برای قطع اتصال از سرور لینوکس، از دستور Exit-SSH Session استفاده کنید:
Exit-SSHSession
نتیجهگیری
استفاده از ماژول Posh-SSH در PowerShell برای برقراری ارتباط با سرورهای لینوکس، به کاربران امکان میدهد تا به صورت ساده و اتوماتیک با سیستمهای لینوکس تعامل کنند. با استفاده از مراحل فوق، شما قادر خواهید بود تا بدون ترکیب ابزارهای جداگانه، دستورات مورد نیاز را مستقیما در PowerShell اجرا نمایید. این قابلیت برای مدیران سیستم و توسعهدهندگانی که به طور همزمان به سیستمهای ویندوز و لینوکس نیاز دارند بسیار مفید است.
سوالات متداول
آیا نیاز به نصب نرمافزار اضافی برای استفاده از SSH در PowerShell ویندوز داریم؟
بله، برای استفاده از SSH در PowerShell ویندوز، نیاز به نصب ماژول Posh-SSH دارید. این ماژول به شما امکان برقراری اتصال SSH به سرورهای لینوکس را میدهد.
چگونه میتوانیم ماژول Posh-SSH را در PowerShell ویندوز نصب کنیم؟
برای نصب ماژول Posh-SSH، میتوانید از دستور زیر در پاورشل استفاده کنید: Install-Module -Name PosH-SSH این دستور ماژول را از مخزن نرمافزاری PowerShell Gallery دریافت و نصب میکند.
چگونه به سرور لینوکس از طریق SSH در پاورشل ویندوز متصل شویم؟
بعد از نصب ماژول Posh-SSH، میتوانید با استفاده از دستور New-SSHSession به سرور لینوکس متصل شوید.
آیا میتوانیم دستورات لینوکسی را مستقیما در PowerShell ویندوز اجرا کنیم؟
بله، س از برقراری اتصال SSH به سرور لینوکس، میتوانید دستورات لینوکسی را مستقیما در پاورشل ویندوز اجرا کنید. برای اجرای یک دستور لینوکسی، آن را به صورت معمول در PowerShell وارد نمایید. به عنوان مثال، میتوانید با استفاده از دستور ls لیست فایلها و دایرکتوریهای موجود در سرور لینوکس را مشاهده کنید.
چگونه میتوانیم اتصال SSH خود را به سرور لینوکس قطع کنیم؟
برای قطع اتصال SSH به سرور لینوکس، میتوانید از دستور Exit-SSH Session استفاده کنید. با اجرای این دستور، اتصال شما به سرور لینوکس قطع خواهد شد.