Windows10のコマンドプロンプトで「ssh 接続名」でSSH接続する方法


はじめに

Windows で SSH 接続する方法というと、TeraTerm や Putty などのツールをインストールして使用するのが一般的ですが、面倒だなぁと常々思っていました。

OpenSSH クライアントが Windows 10 に組み込まれて大分経つのだから、もっと簡単な方法はないものか。Macと同じように以下のように SSH 接続できないかと思い至りました。

> ssh 接続名

それで実験してみたらビンゴ!

公開鍵認証のSSH接続でも、コマンドプロンプトからssh 接続名でサーバーに接続することができました。

その方法をご紹介します。

前提条件

  • 以下の情報がそろっていること
    • ホスト名
    • ユーザー名
    • ポート番号
  • SSHの秘密鍵があること
  • TeraTerm や Putty で接続ができていること

秘密鍵を格納

> cd %homedrive%%homepath%
> mkdir .ssh
> copy 秘密鍵のパス .ssh

.ssh\config ファイルの作成

まずは、下記コマンドで .ssh\config の空ファイルを作成します。

> cd %homedrive%%homepath%\.ssh
> type nul > config

そうしたらテキストエディタで以下の内容を .ssh\config ファイルに記述し保存します。

Host 接続名(自由)
    HostName ホスト名
    User ユーザー名
    IdentityFile C:\Users\ユーザー名\.ssh\秘密鍵のファイル名
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes

設定ができたら実際に接続してみます。

仮にwebsecという接続名であれば以下のようにコマンドプロンプトで実行します。

> ssh websec

複数の接続先がある場合も問題ありません。

以下のように .ssh\config ファイルを記述するだけです。

Host 接続名1
    HostName ホスト名
    User ユーザー名
    IdentityFile C:\Users\ユーザー名\.ssh\秘密鍵のファイル名
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes
Host 接続名2
    HostName ホスト名
    User ユーザー名
    IdentityFile C:\Users\ユーザー名\.ssh\秘密鍵のファイル名
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes

これで Windows のコマンドプロンプトから SSH 接続できるようになりました。

便利ですね。