

# SSH クライアントを使用して Linux インスタンスに接続する
<a name="connect-linux-inst-ssh"></a>

Secure Shell (SSH) を使用して、ローカルコンピュータから Linux インスタンスに接続できます。その他のオプションの詳細については、「[EC2 インスタンスに接続する](connect.md)」を参照してください。

**注記**  
インスタンスに接続しようとしているときにエラーが発生した場合は、インスタンスが [SSH 接続の前提条件](#ssh-prereqs-linux-from-linux-macos) のすべてを満たしていることを確認してください。前提条件をすべて満たしているにもかかわらず Linux インスタンスに接続できない場合は、「[Amazon EC2 Linux インスタンスへの接続に関する問題のトラブルシューティング](TroubleshootingInstancesConnecting.md)」を参照してください。

**Topics**
+ [

## SSH 接続の前提条件
](#ssh-prereqs-linux-from-linux-macos)
+ [

## SSH クライアントを使用して Linux インスタンスに接続する
](#connect-linux-inst-sshClient)

## SSH 接続の前提条件
<a name="ssh-prereqs-linux-from-linux-macos"></a>

SSH を使用して Linux インスタンスに接続する前に、以下のタスクを実行してください。

**一般的な前提条件を満たします。**  
+ インスタンスのステータスチェックが成功していることを確認します。インスタンスが接続リクエストを受け入れる準備が整うまでに、数分かかることがあります。詳細については、「[ステータスチェックの表示](viewing_status.md)」を参照してください。
+ [必要なインスタンスの詳細を取得する](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [プライベートキーを見つけ、許可を設定する](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(オプション) インスタンスのフィンガープリントを取得する](connection-prereqs-general.md#connection-prereqs-fingerprint).

**IP アドレスからのインバウンド SSH トラフィックを許可します。**  
インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラフィックが許可されていることを確認します。詳細については、「[コンピュータからのインスタンスへの接続ルール](security-group-rules-reference.md#sg-rules-local-access)」を参照してください。

**ローカルコンピュータに SSH クライアントをインストールします (必要な場合)。**  
ローカルコンピュータには、デフォルトで SSH クライアントがインストールされている場合があります。これを確認するには、ターミナルウィンドウで次のコマンドを入力します。ご使用のコンピュータでこのコマンドが認識されない場合、SSH クライアントをインストールする必要があります。  

```
ssh
```
Windows で使用できるオプションの一部を次に示します。コンピュータで別のオペレーティングシステムを実行している場合は、そのオペレーティングシステムのドキュメントで SSH クライアントのオプションを確認してください。

## Windows に OpenSSH をインストールする
<a name="openssh"></a>

Windows に OpenSSH をインストールしたら、SSH を使用して Windows コンピュータから Linux インスタンスに接続できます。開始する前に、以下の前提条件を満たしていることを確認してください。

**Windows のバージョン**  
コンピュータの Windows のバージョンは、Windows Server 2019 以降である必要があります。  
それより前のバージョンの Windows の場合は、代わりに [Win32-OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki) をダウンロードしてインストールします。

**PowerShell の要件**  
PowerShell を使用して Windows OS に OpenSSH をインストールするには、PowerShell バージョン 5.1 以降を実行していて、アカウントがビルトインの管理者グループのメンバーである必要があります。PowerShell から `$PSVersionTable.PSVersion` を実行して、PowerShell のバージョンを確認します。  
自分がビルトインの管理者グループのメンバーかどうかを確認するには、次の PowerShell コマンドを実行します。  

```
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
```
ビルトインの管理者グループのメンバーである場合、出力は `True` です。

PowerShell を使用して OpenSSH for Windows をインストールするには、次の PowerShell コマンドを実行します。

```
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

以下は出力例です。

```
Path          :
Online        : True
RestartNeeded : False
```

PowerShell を使用して Windows から OpenSSH をアンインストールするには、次の PowerShell コマンドを実行します。

```
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

以下は出力例です。

```
Path          :
Online        : True
RestartNeeded : True
```

## Windows Subsystem for Linux (WSL) をインストールする
<a name="WSL"></a>

Windows に WSL をインストールしたら、SSH クライアントなどの Linux コマンドラインツールを使用して、Windows コンピュータから Linux インスタンスに接続できます。

「[EC2 Windows インスタンスに Windows Subsystem for Linux をインストールする](install-wsl-on-ec2-windows-instance.md)」の手順に従います。Microsoft のインストールガイドの手順に従うと、Linux の Ubuntu ディストリビューションがインストールされます。必要に応じて、別の Linux ディストリビューションをインストールできます。

WSL ターミナルウィンドウで、Windows から WSL に `.pem` ファイル (インスタンスの起動時に指定したキーペアの場合) をコピーします。インスタンスに接続する際に使用する、WSL の `.pem` ファイルへの完全修飾パスをメモします。Windows ハードドライブへのパスを指定する方法の詳細については、[C ドライブにアクセスする方法](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-access-my-c--drive-)を参照してください。

```
cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem
```

Windows Subsystem for Linux のアンインストールの詳細については、[WSL ディストリビューションをアンインストールする方法](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-uninstall-a-wsl-distribution-)について参照してください。

## SSH クライアントを使用して Linux インスタンスに接続する
<a name="connect-linux-inst-sshClient"></a>

SSH クライアントを使用して Linux インスタンスに接続するには、次の手順に従います。

**SSH クライアントを使用してインスタンスに接続するには**

1. コンピュータでターミナルウィンドウを開きます。

1. **ssh** コマンドを使用してインスタンスに接続します。ここで、前提条件の一部として収集したインスタンスの詳細が必要になります。例えば、プライベートキー (`.pem` ファイル) の場所、ユーザー名、およびパブリック DNS 名または IPv6 アドレスが必要です。コマンドの例を次に示します。
   + (パブリック DNS) パブリック DNS 名を使用するには、次のコマンドを入力します。

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
     ```
   + (IPv6) インスタンスに IPv6 アドレスがある場合、IPv6 アドレスを使用するには、次のコマンドを入力します。

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@2001:db8::1234:5678:1.2.3.4
     ```

   以下に、応答の例を示します。

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established.
   ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.
   Are you sure you want to continue connecting (yes/no)?
   ```

1. (オプション) セキュリティアラートのフィンガープリントが、インスタンスのフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、何者かが中間者 (MITM) 攻撃を試みている可能性があります。一致した場合は、次のステップに進んでください。詳細については、「[インスタンスのフィンガープリントを取得する](connection-prereqs-general.md#connection-prereqs-fingerprint)」を参照してください。

1. **yes** と入力します。

   以下のようなレスポンスが表示されます。

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.
   ```