WindowsでのSSHの方法やconfigファイルの作成方法やパスフレーズの省略方法をご紹介!
          WindowsでのSSHの方法を紹介します

            今回は、WindowsでのSSHの方法を紹介します。ここでは、PowerShellからWSL2(Windows Subsystem for Linux 2)のubuntuにSSH接続します。Windows PC 1台で完結します。
WindowsでのSSHの方法に興味のある方はぜひご覧ください。
            
環境情報
PowerShellからWSL2(Windows Subsystem for Linux 2)のubuntuにSSH接続します。ローカル(PowerShell)の情報は以下です。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                        
                          5
                         
                        
                          6
                         
                        
                          7
                         
                        
                          8
                         
                        
                          9
                         
                        
                          10
                         
                        
                          11
                         
                        
                          12
                         
                        
                          13
                         
                        
                          14
                         
                        
                          15
                         
                        
                          16
                         
                        
                          17
                         
                       | 
                    
                       
                          PS C:\> $PSVersionTable
                         
                        
                          Name                           Value
                         
                        
                          ----                           -----
                         
                        
                          PSVersion                      5.1.18362.1171
                         
                        
                          PSEdition                      Desktop
                         
                        
                          PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
                         
                        
                          BuildVersion                   10.0.18362.1171
                         
                        
                          CLRVersion                     4.0.30319.42000
                         
                        
                          WSManStackVersion              3.0
                         
                        
                          PSRemotingProtocolVersion      2.3
                         
                        
                          SerializationVersion           1.1.0.1
                         
                        
                          PS C:\> SSH -V
                         
                        
                          OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
                         
                        
                          PS C:\>
                         
                       | 
                  
リモート(WSL2のubuntu)の情報は以下です。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                        
                          5
                         
                        
                          6
                         
                       | 
                    
                       
                          ~$ cat /etc/issue
                         
                        
                          Ubuntu 20.04.1 LTS \n \l
                         
                        
                          ~$ ssh -V
                         
                        
                          OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
                         
                        
                          ~$
                         
                       | 
                  
公開鍵と秘密鍵の作成
SSH接続するために、ローカルで公開鍵と秘密鍵を作成します。ssh-keygenコマンドに「-t rsa」オプションを付与してRSA暗号方式で作成します。作成時にパスフレーズを設定してください。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                        
                          5
                         
                        
                          6
                         
                        
                          7
                         
                        
                          8
                         
                        
                          9
                         
                        
                          10
                         
                        
                          11
                         
                        
                          12
                         
                        
                          13
                         
                        
                          14
                         
                        
                          15
                         
                        
                          16
                         
                        
                          17
                         
                        
                          18
                         
                        
                          19
                         
                        
                          20
                         
                        
                          21
                         
                        
                          22
                         
                       | 
                    
                       
                          PS C:\Users\(ユーザー名)> ssh-keygen -t rsa
                         
                        
                          Generating public/private rsa key pair.
                         
                        
                          Enter file in which to save the key (C:\Users\(ユーザー名)/.ssh/id_rsa):             # そのままEnterを押下
                         
                        
                          Created directory 'C:\Users\(ユーザー名)/.ssh'.
                         
                        
                          Enter passphrase (empty for no passphrase):                                            # passphraseを入力
                         
                        
                          Enter same passphrase again:                                                           # 再度、passphraseを入力
                         
                        
                          Your identification has been saved in C:\Users\(ユーザー名)/.ssh/id_rsa.
                         
                        
                          Your public key has been saved in C:\Users\(ユーザー名)/.ssh/id_rsa.pub.
                         
                        
                          The key fingerprint is:
                         
                        
                          SHA256:glwgc4NFGjxtfcGyRAYenHR8BzkH9I2p4Dl1reGIGEw (ユーザー名)@(PCの機種名)
                         
                        
                          The key's randomart image is:
                         
                        
                          +---[RSA 2048]----+
                         
                        
                          | .+BE*+o==       |
                         
                        
                          |  +X=*= *.o=     |
                         
                        
                          |  .o+.o=.+* o    |
                         
                        
                          |   . *.= = o     |
                         
                        
                          |    + * S o      |
                         
                        
                          |       o         |
                         
                        
                          |                 |
                         
                        
                          |                 |
                         
                        
                          |                 |
                         
                        
                          +----[SHA256]-----+
                         
                       | 
                  
ssh-keygenコマンドが成功すると、~/.sshフォルダが生成されます。.sshフォルダ配下には、id_rsaファイルとid_rsa.pubファイルが生成されます。id_rsaは秘密鍵、id_rsa.pubは公開鍵です。公開鍵はリモート側に格納します。秘密鍵は誰にも知られないように管理してください。
公開鍵の内容を標準出力して、リモート側の~/.ssh/authorized_keysにペーストしてください。
| 
                       
                          1
                         
                        
                          2
                         
                       | 
                    
                       
                          PS C:\Users\(ユーザー名)> cat .\.ssh\id_rsa.pub
                         
                        
                          ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClQ1ZSy0j****************************************************************************************************************************************************************************************************** (ユーザー名)@(PCの機種名)
                         
                       | 
                  
SSH接続
リモート側で、SSHサービスを開始します。以下のコマンドを実行してください。
| 
                       
                          1
                         
                       | 
                    
                       
                          ssh_remore:~$ sudo /etc/init.d/ssh start
                         
                       | 
                  
ローカルからSSH接続をします。ssh-keygenコマンド実行時に指定したパスフレーズを入力すると、リモート側に接続できます。
| 
                       
                          1
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> SSH ${リモートユーザ名}@${IPアドレス}
                         
                       | 
                  
接続を終了する際には、「exit」コマンドを入力してください。
configファイル
SSHコマンドを毎回記述するのは面倒です。SSHコマンドのオプションを事前にconfigファイルに記述しておくことで、SSHコマンドをシンプルに記述できます。~/.ssh/configファイルを新規作成して、以下を記述してください。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                        
                          5
                         
                        
                          6
                         
                        
                          7
                         
                        
                          8
                         
                        
                          9
                         
                       | 
                    
                       
                          Host myhost
                         
                        
                              # ユーザ名
                         
                        
                              User ${リモートユーザ名}
                         
                        
                              # ホスト名
                         
                        
                              Hostname ${IPアドレス}
                         
                        
                              # 鍵ファイルのパス
                         
                        
                              IdentityFile ~/.ssh/id_rsa
                         
                        
                              # コネクションの切断防止(60秒周期でパケット送信)
                         
                        
                              ServerAliveInterval  60
                         
                       | 
                  
SSHコマンドを以下のように記述します。
| 
                       
                          1
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> SSH myhost
                         
                       | 
                  
パスフレーズの省略
パスフレーズを毎回入力するのは面倒です。ローカルに秘密鍵を登録することで、パスフレーズの入力を省略できます。
事前準備として、ssh-agentサービスを設定します。まず、services.msc を起動します。
| 
                       
                          1
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> services.msc
                         
                       | 
                  
サービス(ローカル) から「OpenSSH Authentication Agent」を探し、右クリックメニューの「プロパティ」を開き、スタートアップの種類(E)を「自動」にし、サービスを開始します。これでWindows起動時に ssh-agent が自動起動されます。
PowerShellでssh-agentの状態を確認します。RunningであればOKです。Runningでなければ、Windowsを再起動してください。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                        
                          5
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> Get-Service ssh-agent
                         
                        
                          Status   Name               DisplayName
                         
                        
                          ------   ----               -----------
                         
                        
                          Running  ssh-agent          OpenSSH Authentication Agent
                         
                       | 
                  
次にssh-addコマンドで秘密鍵を登録します。
| 
                       
                          1
                         
                        
                          2
                         
                        
                          3
                         
                        
                          4
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> ssh-add
                         
                        
                          Enter passphrase for C:Users\(ユーザ名)/.ssh/id_rsa:
                         
                        
                          Identity added: C:Users\(ユーザ名)/.ssh/id_rsa (C:Users\(ユーザ名)/.ssh/id_rsa)
                         
                        
                          PS C:Users\(ユーザ名)>
                         
                       | 
                  
秘密鍵を登録した状態でSSHコマンドを実行すると、パスフレーズの入力無しで接続できます。
| 
                       
                          1
                         
                       | 
                    
                       
                          PS C:Users\(ユーザ名)> SSH myhost
                         
                       | 
                  
以下のようなメッセージが出力されて接続できない場合、最新のOpenSSHをインストールしてください。
| 
                       
                          1
                         
                       | 
                    
                       
                          warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
                         
                       | 
                  
最新のOpenSSHのダウンロードURLは以下です。
            https://github.com/PowerShell/Win32-OpenSSH/releases
まとめ
いかがでしたでしょうか。PowerShellからWSL2(Windows Subsystem for Linux 2)のubuntuにSSH接続する方法を紹介しました。Windows PC 1台で完結します。
ぜひご自身でコマンドを打ち込んで、理解を深めてください。
ネプラス株式会社はサービス開始から10年以上
          『エンジニアの生涯価値の向上』をミッションに掲げ、
          多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
          
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
          数多くのエンジニアが集まります。

- 
              
インフラ業界に特化

ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
 - 
              
正社員なのにフリーランスのような働き方

正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
 - 
              
大手直取引の高額案件

案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
 - 
              
スキルアップ支援

不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
 - 
              
現給与を保証します!※

前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
 - 
              
インセンティブ制度

ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
 - 
              
社会保険・福利厚生

社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
 - 
              
東証プライム上場企業グループ

ネプラスは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
 
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
              オンライン面接も随時受付中。ぜひお気軽にご応募ください。








