راهی امنتر و راحتتر از رمز عبور
وارد کردن رمز عبور در هر اتصال SSH هم خستهکننده است و هم از نظر امنیتی ایدهآل نیست، چون رمزهای عبور مستعد حدس زدن یا حملات brute-force هستند. راهحل استاندارد، استفاده از یک جفت کلید عمومی و خصوصی است. برای ساختن این جفت کلید:
ssh-keygen -t ed25519 -C "ali@example.com"
این دستور دو فایل میسازد: ~/.ssh/id_ed25519 (کلید خصوصی، هرگز نباید بهاشتراک گذاشته شود) و ~/.ssh/id_ed25519.pub (کلید عمومی، ایمن برای اشتراکگذاری). برای اجازه دادن به یک سرور که با این کلید بدون رمز به آن وارد شوید، باید کلید عمومی را به سرور اضافه کنید:
ssh-copy-id ali@203.0.113.10
این دستور کلید عمومی شما را به فایل ~/.ssh/authorized_keys روی سرور اضافه میکند. از این پس، هنگام اتصال با ssh ali@203.0.113.10، سرور با کلید خصوصی شما تأیید هویت میکند و رمز عبور پرسیده نمیشود.
چرا این روش امنتر است؟
کلید خصوصی هرگز از سیستم شما خارج نمیشود و فقط برای اثبات هویت استفاده میشود؛ حتی اگر ترافیک شبکه شنود شود، مهاجم نمیتواند بدون کلید خصوصی وارد شود. برای امنیت بیشتر، بسیاری از تیمها ورود با رمز عبور را کاملاً در سرور غیرفعال میکنند و فقط ورود با کلید را مجاز میدانند؛ این تنظیم در فایل /etc/ssh/sshd_config با گزینهی PasswordAuthentication no انجام میشود.