PuTTY نرم افزار برای اتصال به شل لینوکس
PuTTY یک نرمافزار رایگان و متنباز برای ویندوز است که با آن از راه دور و با پروتکل SSH به شل (خط فرمان) سرور لینوکسی وصل میشوید و هر دستوری را که پشت خود سرور میزدید اجرا میکنید. کار با آن ساده است: فایل putty.exe را از سایت رسمی بگیرید، آیپی سرور را وارد کنید، پورت را روی ۲۲ و پروتکل را روی SSH بگذارید و Open را بزنید؛ حتی نصب هم لازم ندارد.
PuTTY دقیقا چه کاری میکند و «پورت» یعنی چه؟
PuTTY خودش کاری روی سرور نمیکند؛ فقط یک «کلاینت» است: پلی که ورودی صفحهکلید را به سرور میفرستد و خروجی را نشان میدهد. دو اصطلاح کافی است:
- پورت (Port): مشخص میکند درخواست شما به کدام سرویس برسد؛ وب روی ۸۰ و ۴۴۳ و SSH پیشفرض روی ۲۲.
- SSH: استاندارد امن اتصال به خط فرمان لینوکس که تمام ترافیک را رمزنگاری میکند؛ در عمل تنها گزینه درست. Telnet و Rlogin هم در فهرست PuTTY هستند اما متن ساده میفرستند و منسوخاند؛ Serial برای تجهیزات شبکه است.
اولین اتصال، گام به گام
ستون سمت چپ پنجره PuTTY با عنوان Category درختی از همه تنظیمات است؛ مسیرهایی مثل Window > Translation در همین درخت دنبال میشود. در صفحه Session کادر Host Name (or IP address) را با آیپی سرور پر کنید، Port را ۲۲ و Connection type را SSH بگذارید، در Saved Sessions نامی بنویسید و Save بزنید. با Open ترمینال باز میشود و نام کاربری (معمولا root) و رمز را میخواهد؛ هنگام تایپ رمز کاراکتری دیده نمیشود و این طبیعی است. سپس پرامت root@hostname:~# یا در سرورهای دارای cPanel root@localhost [~]# ظاهر میشود.
آیپی و مشخصات ورود اولیه را ارائهدهنده سرویس میدهد؛ برای نمونه در سرور ابری آلمان روی زیرساخت هتزنر سیستمعامل به انتخاب شما نصب و آنی تحویل میشود.
پیام Security Alert را جدی بگیرید
در اولین اتصال، PuTTY پنجره Security Alert و اثرانگشت (fingerprint) کلید سرور را نشان میدهد. این خطا نیست؛ میپرسد آیا واقعا با همان سرور موردنظر صحبت میکنید. اگر به کنسول دسترسی دارید، اثرانگشت کلیدهای میزبان را ببینید:
for f in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -lf $f; done
هر سرور چند کلید میزبان با الگوریتمهای مختلف دارد؛ خطی را مقایسه کنید که نوعش (مثلا ED25519 یا RSA) با آنچه PuTTY نشان میدهد یکی باشد. اگر بعدها همین هشدار با پیام عدم تطابق کلید ذخیرهشده ظاهر شد، تا از نصب مجدد سیستمعامل مطمئن نشدهاید آن را نپذیرید.
ورود با کلید به جای رمز عبور
امنترین روش ورود، احراز هویت با کلید است. PuTTYgen که همراه PuTTY عرضه میشود کلید میسازد؛ نوع EdDSA (Ed25519) را انتخاب کنید، عبارت عبور بگذارید و کلید خصوصی را با پسوند .ppk ذخیره کنید. روی سرور ابتدا پوشه را بسازید، کلید عمومی بالای پنجره PuTTYgen را یکخطی در authorized_keys بگذارید و دسترسیها را اصلاح کنید:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
سپس در Connection > SSH > Auth > Credentials فایل .ppk را انتخاب کنید؛ کلید OpenSSH را با Conversions > Import key به ppk تبدیل کنید و Pageant آن را یکبار باز میکند تا هر بار عبارت عبور پرسیده نشود. این روش روی سرویسهایی مثل سرور مجازی ایران با دسترسی کامل مدیریتی بهسادگی اجرا میشود.
تنظیمهایی که کار روزمره را راحت میکنند
- قطع نشدن نشست: در Connection مقدار Seconds between keepalives را ۳۰ بگذارید.
- فارسی و UTF-8: در Window > Translation مقدار Remote character set را UTF-8 نگه دارید.
- کپی و پیست: انتخاب متن با ماوس یعنی کپی و کلیک راست یعنی پیست.
- کارهای طولانی: دستورهای وقتگیر را داخل
tmuxیاscreenاجرا کنید تا با قطع اینترنت نیمهتمام نماند.
اگر ترجیح میدهید پیکربندی سرور را به کارشناس بسپارید، در سرور مجازی مدیریتشده ایران نصب و پیکربندی کنترلپنل و پشتیبانی فنی بر عهده تیم آنلاین سرور است.
تونل SSH و ابزارهای همراه
بسته PuTTY فقط ترمینال نیست: pscp و psftp برای انتقال فایل و plink برای اسکریپتها. اگر دیتابیس فقط روی 127.0.0.1 گوش میدهد، لازم نیست آن را روی اینترنت باز کنید: در Connection > SSH > Tunnels مقدار Source port را ۳۳۰۷، مقصد را 127.0.0.1:3306 و نوع را Local بگذارید و Add بزنید؛ بعد به localhost:3307 وصل شوید. معادل خط فرمانی:
ssh -L 3307:127.0.0.1:3306 root@SERVER-IP
خطاهای رایج و معنای واقعی آنها
- Connection timed out: بستهها به سرور نمیرسد؛ آیپی اشتباه است یا فایروال پورت ۲۲ را بسته است.
- Connection refused: به سرور رسیدهاید ولی SSH روی آن پورت اجرا نیست یا پورت عوض شده است.
- Access denied: سرور همه روشهای احراز هویتی PuTTY را رد کرده است. گاهی رمز یا نام کاربری غلط است، اما روی ایمیجهای امروزی علت رایجتر پیکربندی sshd است؛ مثلا
PermitRootLogin prohibit-passwordیاPasswordAuthentication noکه ورود root با رمز را میبندد. تکرار رمز کمکی نمیکند. - Server refused our key: کلید عمومی درست کپی نشده یا دسترسی پوشه
.sshاشتباه است. - No supported authentication methods available: ورود با رمز غیرفعال است و باید با کلید وارد شوید.
PuTTY یا کلاینت ssh داخلی ویندوز؟
روی ویندوز ۱۱ و بیلدهای جدید ویندوز ۱۰ کلاینت ssh نصب و فعال است و در PowerShell کافی است بزنید:
ssh root@SERVER-IP
اما روی ویندوز سرور اینطور نیست: در Windows Server 2019 و ۲۰۲۲ کلاینت OpenSSH پیشفرض نصب نیست و باید از Optional Features یا با Add-WindowsCapability اضافه شود؛ تنها از Windows Server 2025 از پیش نصب (اما غیرفعال) عرضه میشود. وضعیت را ببینید:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
پس PuTTY همچنان بهکار میآید: ذخیره دهها نشست، کلیدهای .ppk، اتصال سریال و ساخت تونل با چند کلیک.
همیشه آخرین نسخه را از منبع رسمی بگیرید
PuTTY را فقط از سایت رسمی دانلود کنید؛ نسخههای بازنشرشده ممکن است دستکاری شده باشند. بهروز نگهداشتن آن هم صرفا توصیه نیست: در نسخههای ۰٫۶۸ تا ۰٫۸۰ آسیبپذیریای بود که بازسازی کلید خصوصی از روی امضاهای ECDSA نوع NIST P-521 را ممکن میکرد و در ۰٫۸۱ رفع شد؛ پس از آن هم چند اشکال غیربحرانی دیگر رفع شده و آخرین نسخه پایدار ۰٫۸۴ است. اگر کلید P-521 ساختهاید، آن را باطل و کلیدی تازه (ترجیحا Ed25519) جایگزین کنید.
صفحه دانلود رسمی PuTTY | توضیح رسمی آسیبپذیری کلیدهای P-521
