SSH — mihomo
mihomo включает исходящее подключение SSH-клиента. Только исходящее — входящего SSH-сервера нет.
Исходящий
Запись в proxies: с type: ssh. Встраивает BasicOption.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
name | string | (required) | <string> | Уникальное имя прокси. |
server | string | (required) | <host> | Имя хоста или IP SSH-сервера. |
port | int | (required) | <port> | Порт SSH-сервера (по традиции 22). |
username | string | (required) | <string> | Имя входа SSH. |
password | string | (unset) | <string> | Аутентификация по паролю. Используйте либо это поле, либо `private-key`, но не оба. |
private-key | string | (unset) | <PEM block or file path> | Аутентификация по закрытому ключу. Принимает инлайновый PEM-блок или путь к файлу; mihomo сам определяет формат. |
private-key-passphrase | string | (unset) | <string> | Парольная фраза для зашифрованных закрытых ключей. |
host-key | []string | [] | <known_hosts line> | Ожидаемые ключи хоста в формате known_hosts OpenSSH. Пустой список отключает проверку — только для тестов. |
host-key-algorithms | []string | (library default) | <algo> | Ограничить алгоритмы ключа хоста, принимаемые клиентом. |
Исходный код: adapter/outbound/ssh.go:31-42 · зафиксировано на v1.19.29 (e26714a)
Примеры
Аутентификация по ключу:
yaml
proxies:
- name: ssh-server
type: ssh
server: ssh.example.com
port: 22
username: alice
private-key: /etc/mihomo/id_ed25519
private-key-passphrase: <passphrase>
host-key:
- ssh.example.com ssh-ed25519 AAAA...Инлайновый ключ с явным списком алгоритмов:
yaml
proxies:
- name: ssh-strict
type: ssh
server: ssh.example.com
port: 22
username: alice
private-key: |
-----BEGIN OPENSSH PRIVATE KEY-----
<key bytes>
-----END OPENSSH PRIVATE KEY-----
host-key-algorithms:
- ssh-ed25519
- rsa-sha2-512Примечания
private-keyпринимает либо инлайновый PEM-блок, либо путь к файлу; mihomo решает, проверяя, содержит ли значениеBEGIN.host-key— форматknown_hostsOpenSSH. Пустой список означает доверие при первом использовании — никогда не включайте это для необслуживаемых развёртываний.- Исходящее SSH не поддерживает мультиплексирование — каждое соединение открывает новую SSH-сессию. Сочетайте с цепочкой
dialer-proxymihomo, если хотите мультиплексировать через другой транспорт.
Сравнение с другими ядрами
- У Xray-core нет исходящего SSH. См. SSH — Xray-core.
- sing-box использует
user(а неusername), snake_case для остальных полей (private_key,host_key_algorithms) и принимает список инлайновых ключей для ротации. Он также предоставляет поле баннераclient_version. См. SSH — sing-box.
Исходный код: adapter/outbound/ssh.go:31-42 · v1.19.29 (e26714a)
