SSH
SSHプロトコルをプロキシサーバーとして使用できます。これはssh -Dと同等です。
プロファイル構文:
- パスワード認証
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw
- 公開鍵認証
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, private-key=base64(privateKeyFileContent)
- 秘密鍵ファイル自体がbase64エンコーディングを使用している場合でも、秘密鍵ファイル全体を再度base64でエンコードする必要があることに注意してください。値は1行でなければならないため、
OpenSSLに出力を折り返さないよう指定します(-A):
// OpenSSL 1.x
openssl enc -base64 -A -in /path/to/privatefile
// OpenSSL 3+
openssl base64 -A -in /path/to/privatefile
RSA/ECDSA/ED25519の3種類の秘密鍵タイプがサポートされています。DSA(
ssh-dss)はサポートされていません: DSAのホスト鍵もDSAの秘密鍵も使えません。以下のKEXメソッドと暗号は、Chute Mac・iOS・tvOSが使うlibssh2のコンパイル時の既定です。Chute Androidは代わりに、そのSSHライブラリであるsshjの既定のセットを使います。これらはChuteが強制する許可リストではありません — Chuteはこれらを絞り込みません:
| KEXメソッド |
|---|
| diffie-hellman-group1-sha1 |
| diffie-hellman-group14-sha1 |
| ecdh-sha2-nistp256 |
| ecdh-sha2-nistp384 |
| ecdh-sha2-nistp521 |
| curve25519-sha256@libssh.org |
| curve25519-sha256 |
| diffie-hellman-group16-sha512 |
| diffie-hellman-group18-sha512 |
| diffie-hellman-group14-sha256 |
| diffie-hellman-group-exchange-sha256 |
| diffie-hellman-group-exchange-sha1 |
| 暗号 |
|---|
| chacha20-poly1305@openssh.com |
| aes256-gcm@openssh.com |
| aes128-gcm@openssh.com |
| aes256-ctr |
| aes192-ctr |
| aes128-ctr |
| aes256-cbc |
| rijndael-cbc@lysator.liu.se |
| aes192-cbc |
| aes128-cbc |
| blowfish-cbc |
| arcfour128 |
| arcfour |
| cast128-cbc |
| 3des-cbc |
- アイドルタイムアウトのパラメータを指定できます。デフォルト値は180秒です。このポリシーを通る接続は1つのSSHセッションを共有し、そのセッションは接続を1つも運ばない状態がその秒数続くと閉じられます。いずれかの接続が開いている間は、その接続にどれほど通信が無くてもセッションは維持され、ある接続が終了しても同じセッション上の他の接続には影響しません。
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180
サーバーフィンガープリント
MitM攻撃に対処するために、server-fingerprintでサーバーの公開鍵フィンガープリントを指定できます。これにより、正当なサーバーのみに接続することが保証されます。各エントリは、~/.ssh/known_hostsが書く形式のサーバーの公開鍵 — 鍵の種類とbase64の鍵、ssh-ed25519 AAAA… — か、ssh-keygen -lが表示する形式のSHA-256フィンガープリントSHA256:…のいずれかです。値を囲む二重引用符は省略できます。server-fingerprintが書かれているのにどのエントリも読み取れない場合は、どのサーバーでも信頼されてしまうのではなく、すべての接続が拒否されます。拒否された接続は、サーバーが提示した鍵の種類とSHA256:フィンガープリントとともにログに記録されます。
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180, server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep"
サーバーには複数の公開鍵が存在する可能性があるため、server-fingerprintパラメータは複数のフィンガープリントの設定をサポートしています。
server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep,ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrklKEp4vuMqqNiS2lvDL7g3rQ2dAwvik+KIC4iVJNoaHhkLRAEv1y/dQYixf71ORZUI+w3AFKp1RzfiuwciTsMnp7Hq9uvcHqDRDaCrYe1EDx3Dr0XlH1wsdUcr+6DOAUzRSXK9LSEPVK1xHb6WJBaTkNOHruPCmrINA/DEIiflMN2q77AWlsMt+unhmY2YWgJprY+vpDOcXk8+CnL4K+QWNlHB8mTfB58p1oadz1xWG9so//rUMp7JHtUt6QpVJvwf/Qh7IcFNDhSHwSTJu2Px2P9biuUOPkmPtZmTIdnDx25EUWtmE/+VE3lZAYuur7KuGsG0o+X8dYnEMAN3ar"
サーバーフィンガープリントは~/.ssh/known_hostsファイルから取得できます。または、信頼できるネットワーク環境でssh-keyscan example.comコマンドを使用して取得することもできます。Chuteにコピーする前に、行の先頭にあるホスト名を削除してください: ホスト名で始まったままのエントリは読み取れません。
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。