はじめに

$HOME/.ssh/confg で多段sshのconfigは作れるが、Windows10標準sshではやったことないぞ、という人向けのメモです
「どうせ同じだろ?」とか思ってると些細なところで意外とハマります

sshが使えるか確認

コマンドプロンプトで ssh -V や where ssh とかしてみるのが良いです

 75%

もし見つからない、エラーが出る場合は openssh client のインストールをしましょう

ssh-agent を使えるようにする

サービス ssh-agent を有効にし、起動する

秘密鍵のパーミッションを適切にする(≒ %userprofile%\.ssh\ に秘密鍵ファイルを直置きするか symlink を張る)

必要に応じて ~/.ssh/config の ProxyCommand を見直す

sshコマンドを使って多段する場合(大抵はそうなると思いますが)の

 ProxyCommand ssh -W %h:%p gateway 2>/dev/null

ここの ssh コマンド部分はフルパスで指定しておくのが無難です

 ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p gateway 2>/dev/null

既に WSL/msys2 等で config を作成している場合はこんな感じで変換してしまうのが楽です

# パス変換コマンド判別
if type wslpath >/dev/null 2>&1; then CMD=wslpath; elif type cygpath >/dev/null 2>&1; then CMD=cygpath; fi

# バックアップ取得後に ~/.ssh/config を変換
CONF=$("$CMD" "${APPDATA%\\AppData*}"/.ssh/config)
if [ -f "$CONF" ]; then
  cp "$CONF" /tmp/
  sed 's/ProxyCommand ssh/ProxyCommand C:\\Windows\\System32\\OpenSSH\\ssh.exe/' <~/.ssh/config >"$CONF"
fi

-f オプションが変

変というか、、、sshコマンドを入力後、プロンプトが返らずに固まったようになります
(4s後に Enter→固まる/15sec後に Ctrl+C で停止)

なんとかしてバックグラウンドで起動したい場合、
start コマンドを使って ssh のウィンドウを最小化してしまうと邪魔にならなくて良いかも

 start /min ssh -vNL 8080:192.168.33.1:8080 remotepc.gateway

終了するときは ssh のウィンドウを開き、Ctrl+C します


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS