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 编码。你可以使用
OpenSSL来创建 base64 编码字符串:
// OpenSSL 1.x
openssl enc -base64 -in /path/to/privatefile
// OpenSSL 3+
openssl base64 -in /path/to/privatefile
支持全部四种私钥类型:RSA/ECDSA/ED25519/DSA。
Chute 支持以下 KEX 方法及 SSH 密码列表:
| KEX 方法 |
|---|
| diffie-hellman-group1-sha1 |
| diffie-hellman-group14-sha1 |
| ecdh-sha2-nistp256 |
| ecdh-sha2-nistp384 |
| ecdh-sha2-nistp521 |
| [email protected] |
| curve25519-sha256 |
| diffie-hellman-group16-sha512 |
| diffie-hellman-group18-sha512 |
| diffie-hellman-group14-sha256 |
| 密码 |
|---|
| 3des_cbc |
| aes128_cbs |
| aes192_cbc |
| aes256_cbc |
| aes128_ctr |
| aes196_ctr |
| aes256_ctr |
| aead_aes128_gcm |
| aead_aes256_gcm |
| aead_chacha20_poly1305 |
- 你现在可以指定空闲超时参数。默认值为
180s。
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180
服务器指纹
为了应对中间人(MITM)攻击,你可以使用 server-fingerprint 指定服务器的公钥指纹,这样可以确保只连接到合法的服务器。
[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 之前,请删除行首的主机名。