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이 출력을 줄바꿈하지 않도록 지정하세요(-A):
// OpenSSL 1.x
openssl enc -base64 -A -in /path/to/privatefile
// OpenSSL 3+
openssl base64 -A -in /path/to/privatefile
세 가지 유형의 개인 키(RSA/ECDSA/ED25519)가 지원됩니다. 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초입니다. 이 정책을 거쳐 맺는 연결들은 하나의 SSH 세션을 공유하며, 세션은 그 초 수 동안 아무 연결도 싣지 않으면 닫힙니다. 연결이 하나라도 열려 있는 동안에는 그 연결이 아무리 조용하더라도 세션이 유지되며, 끝난 연결은 같은 세션의 다른 연결에 영향을 주지 않습니다.
[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에 복사하기 전에 줄 앞의 호스트명을 제거하세요: 호스트명이 그대로 앞에 붙은 항목은 읽을 수 없습니다.
이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.