インタラクティブシェル¶
リモートコマンドを指定しない場合、win-sshpass はローミングターミナルモードのインタラクティブシェルを開き、ネイティブに近い SSH 体験を提供します。
基本的な使用方法¶
# パスワードで
win-sshpass -p 'password' ssh user@host
# 秘密鍵で
win-sshpass -i ~/.ssh/id_ed25519 ssh user@host
# 設定ファイルで
win-sshpass -f server.config
ローミングターミナルモードの機能¶
正しいエコー¶
入力した文字が二重エコーなしで正しく表示されます。これはローカルターミナルをローモードに設定することで実現されています。
シグナル転送¶
- Ctrl+C — 現在のリモートプロセスを中断
- Ctrl+Z — 現在のリモートプロセスをサスペンド
フルスクリーンアプリのサポート¶
以下のアプリケーションが正しく動作します:
vim/nvim— テキストエディタtop/htop— システムモニターnano— テキストエディタless/more— ページャーmc(Midnight Commander) — ファイルマネージャー
動的ターミナルリサイズ¶
ローカルターミナルウィンドウのサイズを変更すると、リモートターミナルが新しいサイズに自動的に合わせます。これは SSH の window-change リクエストで実装されています。
Tab 補完¶
リモートシェルの Tab 補完が正常に動作します。
ファイル転送(rz/sz)¶
インタラクティブシェルでは、rz と sz コマンドでファイル転送が可能です:
# リモートシェルで:
rz # ファイルをアップロード(ファイルピッカーを開く)
rz /local/path/to/file # 特定のローカルファイルをアップロード
sz /remote/path/to/file # ファイルをダウンロード(保存ダイアログを開く)
sz /remote/path/to/file /local # 特定のローカルパスにダウンロード
仕組み
リモートシェルが rz/sz: command not found を報告すると、win-sshpass はエラーを傍受し、代わりに SFTP で転送を実行します。リモートサーバーに lrzsz をインストールする必要はありません。
カスタムファイルセレクター¶
デフォルトでは、rz/sz はシステムファイルダイアログ(zenity 経由)を使用します。カスタマイズするには、Go SDK の WithFileSelector オプションで独自の実装を注入してください。
標準 SSH との違い¶
| 機能 | 標準 SSH | win-sshpass |
|---|---|---|
| パスワード認証 | ssh-agent が必要 | ネイティブサポート |
| Windows サポート | OpenSSH のインストールが必要 | 独立した実行ファイル |
| rz/sz 転送 | リモートに lrzsz が必要 | 組み込み SFTP フォールバック |
| プログレスバー | なし | SFTP 転送時 |