ssh-keyscan گزینه ProxyCommand در SSH را نمی‌پذیرد. بنابراین پروکسی‌ای که برای ssh پیکربندی شده است، اسکنر جداگانه را به‌طور خودکار پیکربندی نمی‌کند.

یک راه‌حل، رله TCP محلی است که از پیش برقرار شده و احراز هویت پروکسی و تبادل CONNECT لازم را کامل می‌کند و سپس جریان بایتی سرور SSH موردنظر را آشکار می‌سازد. اگر آن رله روی 127.0.0.1:2222 گوش دهد:

ssh-keyscan -p 2222 127.0.0.1 > candidate.keys
ssh-keygen -lf candidate.keys

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

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

پیش از پیوند دادن کلید با میزبان و درگاه واقعی در known_hosts، اثر انگشت را از طریق یک سابقه مورد اعتماد یا مدیر بررسی کنید. ssh-keyscan آنچه را نقطه پایانی قابل‌دسترس ارائه می‌دهد جمع می‌کند؛ یک اتصال پروکسی موفق آن کلید را احراز نمی‌کند.

مقالات مرتبط