コンテンツにスキップ

インタラクティブシェル

リモートコマンドを指定しない場合、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)

インタラクティブシェルでは、rzsz コマンドでファイル転送が可能です:

# リモートシェルで:
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 転送時

次のステップ