
USSHは、USTP-Secure上に構築されたシェルプロトコルおよびクライアント/サーバーペアです。
これはTCPトンネルではなく、SSHをTCP内にラップするものでもありません。
ステータス: ベータ版
ライセンス: MIT
chacha20 = CHACHA20_POLY1305aes-256-gcm = AES_256_GCMaes-128-gcm = AES_128_GCMchacha205322python3 ussh_server.py \
--peer-ip <CLIENT_IP_OR_DOMAIN> \
--peer-port 0 \
--bind-ip 0.0.0.0 \
--bind-port 5322 \
--cipher chacha20 \
--congestion-control auto
--passwordを省略した場合、サーバーは起動時にUSSHログインパスワードの入力を求めます。
対話的な起動時、サーバーは自身をsystemdサービスとしてインストールするかどうかを尋ねます。通常実行するにはnと答えてください。この質問をスキップするには--no-systemd-promptを使用します。
python3 ussh_client.py \
--peer-ip <SERVER_IP_OR_DOMAIN> \
--peer-port 5322 \
--bind-ip 0.0.0.0 \
--bind-port 0 \
--cipher chacha20 \
--congestion-control off \
--cleartext off
クライアントはSSHと同様に、パスワードを対話的に要求します。
クライアントは最初に確認したサーバーのX25519公開鍵を~/.ussh_known_hosts.jsonに保存します。
その鍵が後で変更された場合、クライアントは新しい鍵を黙って信頼する代わりに、TOFU不一致エラーで中断します。
サーバーのホスト鍵を意図的にローテーションした場合は、クライアントを--regen-key付きで実行して、対話的な確認後に保存されたTOFU鍵の置き換えを許可してください。
USSH Internet-Draft: https://datatracker.ietf.org/doc/draft-x1co-ussh/--cleartext auto|on|off--cleartext on|offautoの場合、USSHはクライアントの要求に従います。onまたはoffの場合、サーバーは最終的なクリアテキストモードを強制します。--cleartext onを使用すると、USSHはクリアテキストが実際のインターネット上では危険であり、ローカルネットワークなどの管理された環境でのみ推奨されるという警告を表示します。ACK: 10 MAC:<tag>、NACK: 42 MAC:<tag>、HELLO: ...、CLOSE:などの読み取り可能なASCII制御行と、バイナリのUPACK(UPAK)DATAフレームを使用します。ACKとNACKはデバッグ容易性のために平文のままですが、偽造されたACK/NACK制御攻撃を防ぐために、セッションごとのHMACタグで認証されます。UPACK DATAペイロードあたり900バイトというUSTPSトランスポートのペイロード上限を継承します。IP:portが変わった場合、現在のUSSHセッションは終了することが想定され、ユーザーはクリーンに再接続する必要があります。IP:portでクライアントを検証し、セッションをそのエンドポイントにバインドし、エンドポイントが変更された場合は再接続します。USTPS Congestionを継承します。--congestion-control auto|on|off--congestion-control on|offautoの場合、USSHはクライアントの要求に従います。サーバーがonまたはoffの場合、サーバーは最終モードを強制します。stdoutバイトストリームのみを再組み立てします。ls、find、コンパイラログなどの大きな出力が破損する可能性があるためです。ussh_server.pyを実行しているマシン上で実際のPTYバックアップシェルを起動します。--cipherが設定されている場合、サーバーはその正確な暗号を使用します。--cipherが省略されるかautoに設定されている場合、サーバーはクライアントが要求した暗号を使用します。~/.ussh_host_keyに永続的なX25519ホスト鍵を保持するため、TOFUは再接続や再起動をまたいで安定したままです。--regen-keyを使用してください。<peer-ip-or-domain>:<peer-port>ごとに保存されるため、異なるアドレス/ポートの別のサーバーは異なるホストIDとして扱われます。USTPS Congestionがonかoffかもネゴシエーションされます。