SSH — sing-box
sing-box یک خروجی کلاینت SSH عرضه میکند. امکانات استاندارد SSH — احراز هویت با گذرواژه، احراز هویت با کلید با عبارت عبور، پین کردن کلید میزبان، بازنویسی بنر — همگی ارائه شدهاند.
خروجی
type: "ssh":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
user | string | (server-dependent) | <username> | نام ورود SSH. |
password | string | (unset) | <string> | احراز هویت با گذرواژه. بهطور متقابل با احراز با کلید استفاده میشود — اگر هر دو تنظیم شده باشند sing-box ابتدا گذرواژه را امتحان میکند. |
private_key | badoption.Listable[string] | [] | <PEM block> | کلید(های) خصوصی درونخطی. یک رشتهٔ PEM واحد یا فهرستی از رشتههای PEM را میپذیرد. |
private_key_path | string | (unset) | <file path> | مسیر یک فایل کلید خصوصی. اگر هر دو تنظیم شده باشند بر `private_key` تقدم دارد. |
private_key_passphrase | string | (unset) | <string> | عبارت عبور استفادهشده برای باز کردن کلیدهای خصوصی رمز شده. |
host_key | badoption.Listable[string] | [] | <key string> | کلیدهای میزبان موردانتظار (قالب authorized_keys). خالی تأیید را غیرفعال میکند — فقط برای آزمایش مفید است. |
host_key_algorithms | badoption.Listable[string] | (library default) | <algo> | محدود کردن الگوریتمهای کلید میزبانی که کلاینت میپذیرد. برای سرورهای قدیمی مفید است. |
client_version | string | (library default) | <SSH version string> | بنر نسخهٔ کلاینت. برای تقلید از OpenSSH یا یک ساخت خاص بازنویسی کنید. |
منبع: option/ssh.go:5-16 · ثابتشده در v1.13.11 (553cfa1)
DialerOptions و ServerOptions (server، server_port) را درون خود جای میدهد.
مثالها
احراز هویت مبتنی بر کلید، کلید میزبان پینشده:
json
{
"outbounds": [
{
"type": "ssh",
"tag": "ssh-out",
"server": "ssh.example.com",
"server_port": 22,
"user": "alice",
"private_key_path": "/etc/sing-box/id_ed25519",
"private_key_passphrase": "<passphrase>",
"host_key": ["ssh.example.com ssh-ed25519 AAAA..."]
}
]
}احراز هویت با گذرواژه و جعل بنر:
json
{
"outbounds": [
{
"type": "ssh",
"tag": "ssh-spoof",
"server": "ssh.example.com",
"server_port": 22,
"user": "alice",
"password": "<password>",
"client_version": "SSH-2.0-OpenSSH_9.6"
}
]
}نکات
- خروجی SSH فقط کلاینت است — sing-box ورودی SSH-server را پیادهسازی نمیکند.
host_keyدر قالبknown_hostsبه سبک OpenSSH است.host_keyخالی به معنای «اعتماد به هر کلید میزبان» است — برای محیط تولید امن نیست.private_keyیک فهرست را میپذیرد چون یک میزبان ممکن است کلیدها را بچرخاند؛ sing-box آنها را به ترتیب امتحان میکند تا یکی پذیرفته شود.
نکات بینهستهای
- Xray-core SSH را پیادهسازی نمیکند. به SSH — Xray-core مراجعه کنید.
- mihomo از
username(نهuser)، kebab-case برای بقیه (private-key-passphrase،host-key-algorithms) استفاده میکند و کلید خصوصی را بهعنوان یک رشتهٔ واحد بهجای فهرست میپذیرد. به SSH — mihomo مراجعه کنید.
منبع: option/ssh.go:5-16 · v1.13.11 (553cfa1)
