Skip to content

SSH — mihomo

mihomo включает исходящее подключение SSH-клиента. Только исходящее — входящего SSH-сервера нет.

Исходящий

Запись в proxies: с type: ssh. Встраивает BasicOption.

ПолеТипПо умолчаниюДопустимые значенияОписание
namestring(required)<string>Уникальное имя прокси.
serverstring(required)<host>Имя хоста или IP SSH-сервера.
portint(required)<port>Порт SSH-сервера (по традиции 22).
usernamestring(required)<string>Имя входа SSH.
passwordstring(unset)<string>Аутентификация по паролю. Используйте либо это поле, либо `private-key`, но не оба.
private-keystring(unset)<PEM block or file path>Аутентификация по закрытому ключу. Принимает инлайновый PEM-блок или путь к файлу; mihomo сам определяет формат.
private-key-passphrasestring(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_hosts OpenSSH. Пустой список означает доверие при первом использовании — никогда не включайте это для необслуживаемых развёртываний.
  • Исходящее SSH не поддерживает мультиплексирование — каждое соединение открывает новую SSH-сессию. Сочетайте с цепочкой dialer-proxy mihomo, если хотите мультиплексировать через другой транспорт.

Сравнение с другими ядрами

  • У 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)

Core Tutorial от Argsment