この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-16 17:19:31

タイトル: Missing target argument.
SEOタイトル: SSH の Missing target argument. エラーと対処

エラー内容

Missing target argument.

発生条件

  • SSH コマンド実行時に表示される
  • 特に ~/.ssh/config を利用したホスト別名接続時に出やすい
  • OpenSSH クライアントが接続先ホスト名を解決できなかった状態

原因

原因解説
接続先 (ターゲット) を省略ssh 単独で実行した
ssh_config のフォーマット崩れHost 行と他項目のインデント/キーが不正
BOM 付き UTF-8 / 改行コード混在Windows で作成した config を持ち込んだ際に発生しやすい
オプションの引数取り違い-o ProxyCommand=... の引数解釈で次のトークンが消費されている
シェルのエイリアス/関数で書き換え引数が空になって渡っている

対処手順

1. 接続先を明示して実行

最低限、ホスト指定が必要です。

ssh user@example.com
ssh prod         # ~/.ssh/config の Host エイリアス

2. ssh_configの記述を見直す

~/.ssh/config の典型的なフォーマットは以下のとおりです。各設定行はインデント、Host 行は左端から始める運用が安全です。

Host prod
  HostName 203.0.113.10
  User deploy
  Port 22
  IdentityFile ~/.ssh/id_ed25519

よくある間違い:

  • Host: のようにコロンを付けてしまう (正しくは Host prod)
  • HostName が空欄
  • 引用符の中にスペースが混じり値が分割される
  • 同じ Host prod ブロックが複数あり、先勝ち/後勝ちで意図と違う設定が読み込まれる

3. 設定の解釈結果を確認

-G オプションで、特定ホストに対する実効設定を確認できます。

ssh -G prod | head    # 解釈後の設定
ssh -vvv prod         # 詳細ログで接続トレース

4. ファイルのエンコーディング/改行コード確認

  • UTF-8 (BOM なし) に統一する
  • 改行コードは LF (Unix系) が安全。Windows から持ち込んだ CRLF は dos2unix 等で変換
  • 非 ASCII 文字 (全角スペース等) が紛れていないか確認

5. ファイルのパーミッション

パーミッションが緩いと OpenSSH 側で警告が出るので、念のため整えます。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/config ~/.ssh/id_*

関連エラー

  • Bad configuration option — config 内のキー名が不正
  • Could not resolve hostname — HostName が解決できない
  • Permission denied (publickey) — 認証エラー (config 自体は読めている)

関連