2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

バッチファイルでSSHの認証プロキシの設定を有効・無効にする

Posted at

バッチファイルでSSHのプロキシ設定を有効・無効にしたい

バッチファイルでSSHのプロキシ設定を有効にしたり、無効にしたりできないか調査したところ、以下の記事を見つけました。

sshのプロキシ環境を自動切り替え

こちらと同じことをWindowsでもやれないか試してみました。
Macの場合は上記の記事をご参照ください。

2種類の config ファイルを用意する

SSHの設定ファイルをプロキシ無効時用・有効時用の2種類用意します。

例としてGitHubに接続する場合を考えます。

config_no_proxy.txt を用意する

まず、 %USERPROFILE%\.ssh\config_no_proxy.txt というファイルを作成します。これはプロキシ無効時に利用する config ファイルです。

config_no_proxy.txt
Host github.com
    HostName ssh.github.com
    User git
    Port 443
    IdentityFile "C:\Users\ユーザー名\.ssh\id_rsa"

IdentityFile には、 %USERPROFILE%\.ssh\id_rsa~/.ssh/id_rsa といった記述は使えず、 C:\Users\ユーザー名\.ssh\id_rsa のようにフルパスで記述する必要があります。(少なくとも私の環境ではそうでした)

config_proxy.txt を用意する

次に、 %USERPROFILE%\.ssh\config_proxy.txt というファイルを作成します。これはプロキシ有効時に利用する config ファイルです。

config_proxy.txt
Host github.com
    HostName ssh.github.com
    User git
    Port 443
    IdentityFile "C:\Users\ユーザー名\.ssh\id_rsa"
    ProxyCommand connect.exe -H ユーザー名:パスワード@ホスト:ポート %h %p

ProxyCommand という行が追加されています。この行に登場する ユーザー名 , パスワード , ホスト , ポート には、プロキシの設定値を入力してください。

バッチファイルでプロキシを無効にする

プロキシを無効にしたい場合は、 %USERPROFILE%\.ssh\config のシンボリックリンク先を config_no_proxy.txt にします。

以下のバッチファイルを 管理者権限 で実行してください。

disableProxy.bat
rem 既存のシンボリックリンクを削除する
del %USERPROFILE%\.ssh\config

rem config_no_proxy.txt にリンクを貼る
mklink %USERPROFILE%\.ssh\config %USERPROFILE%\.ssh\config_no_proxy.txt

これで、プロキシが無効になりました。

バッチファイルでプロキシを有効にする

プロキシを有効にしたい場合は、 %USERPROFILE%\.ssh\config のシンボリックリンク先を config_proxy.txt にします。

以下のバッチファイルを 管理者権限 で実行してください。

enableProxy.bat
rem 既存のシンボリックリンクを削除する
del %USERPROFILE%\.ssh\config

rem config_proxy.txt にリンクを貼る
mklink %USERPROFILE%\.ssh\config %USERPROFILE%\.ssh\config_proxy.txt

これで、プロキシが有効になりました。

さいごに

バッチファイルでSSHのプロキシ設定を有効にしたり、無効にしたりできるようになりました。

以下の記事を参考にさせていただきました。ありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?