設定ファイル¶
win-sshpass は設定ファイルをサポートし、複数サーバーの接続情報を管理できます。毎回長いコマンドライン引数を入力する必要がなくなります。
設定ファイルのフォーマット¶
設定ファイルはシンプルな key: value フォーマットを使用します:
サポートされるフィールド¶
| フィールド | 説明 | デフォルト |
|---|---|---|
host |
ホストアドレス(必須) | - |
username / user |
ユーザー名 | root |
password |
パスワード | - |
port |
ポート | 22 |
key / keypath |
秘密鍵ファイルのパス | - |
timeout |
操作タイムアウト(秒)、0 = 無制限 | 0 |
connect_timeout |
TCP 接続タイムアウト(秒) | 10 |
retry / retries |
接続リトライ回数 | 3 |
strict_host_key |
厳密なホストキー検証を有効化 | false |
例¶
host: 192.168.1.100
username: ubuntu
password: mypassword
port: 22
# key: ~/.ssh/id_ed25519 # 秘密鍵認証を使用(パスワードの代替)
# timeout: 0 # 操作タイムアウト(秒)、0 = 無制限
# connect_timeout: 10 # TCP 接続タイムアウト(秒)
# retry: 3 # 接続リトライ回数
# strict_host_key: false # 厳密なホストキー検証を有効化
設定ファイルの使用¶
# コマンド実行
win-sshpass -f server.config -c 'docker ps'
# またはコマンドを位置引数として渡す
win-sshpass -f server.config 'docker ps'
# インタラクティブシェルを開く
win-sshpass -f server.config
# 設定ファイル + SSH スタイル引数
win-sshpass -f server.config ssh user@host 'ls'
パスワードファイル¶
ファイルが設定フォーマットではない場合(host: などのキーを含まない場合)、win-sshpass はパスワードファイル(1行テキスト)として扱います:
設定の優先順位¶
設定は以下の優先順位でマージされます(高い方が低い方を上書き):
- コマンドライン引数(最高優先度)
- 設定ファイル
- デフォルト値(最低優先度)
例:
# 設定ファイルでは port: 22 だが、コマンドラインで -P 2222 を指定
win-sshpass -f server.config -P 2222 ssh user@host
# ポート 2222 を使用
複数サーバーの管理¶
各サーバーごとに個別の設定ファイルを作成:
# Web サーバー
win-sshpass -f ~/.ssh/web-server.config 'nginx -t'
# データベースサーバー
win-sshpass -f ~/.ssh/db-server.config 'systemctl status mysql'
# ステージング環境
win-sshpass -f ~/.ssh/staging.config 'docker ps'
セキュリティのヒント¶
パスワードのセキュリティ
設定ファイルには平文のパスワードが含まれています。ファイル権限に注意してください:
- 設定ファイルを安全なディレクトリ(例:
~/.ssh/)に保存 - 適切なファイル権限を設定(現在のユーザーのみ読み取り可能)
- パスワードの代わりに秘密鍵認証の使用を検討
# Linux/macOS
chmod 600 server.config
# Windows(icacls を使用)
icacls server.config /inheritance:r /grant:r %USERNAME%:R