LoginSignup
0
0

SSHで接続する方法(パスフレーズの入力省略、Azureへのテスト接続)

Last updated at Posted at 2023-09-26

概要

この記事はSSH接続に関して、公開鍵の作成や秘密鍵の作成、Azureの仮想マシン(Linux)へのテスト接続などを記事にしています。
特に、公開鍵認証やパスフレーズの入力の省略など私自身知らなかった部分や、実装で困った部分を重点的に解説していきます。

目次

  1. 公開鍵、秘密鍵の作成
  2. Azureでテスト用環境の構築
  3. テスト接続
  4. パスフレーズの入力の省略

1. 公開鍵、秘密鍵の作成

今回は以下の仕様で公開鍵、秘密鍵を作成します。

  • 形式:Open SSH
  • 暗号化アルゴリズム:RSA暗号
  • 暗号化強度(鍵長):4096ビット
  • パスフレーズの有無:有

鍵の作成では、以下のコマンドをPowerShellやコマンドプロンプトで実行します。

create_ssh_keys.ps1
ssh-keygen -t rsa -b 4096

このコードを実行すると、パスフレーズの入力を求められるため、必要に応じてパスフレーズを入力します。
パスフレーズは空でも問題ありませんが、秘密鍵が漏洩した場合を考慮して、パスフレーズを設定しておくことをお勧めします。

パスフレーズを入力するとC:\Users\ユーザー名\.ssh フォルダ配下に以下2つのファイルが作成されます。

  • id_rsa(秘密鍵)
  • id_rsa.pub(公開鍵)

※注意
もし、既に秘密鍵が存在する場合は、コード実行時に上書き保存するか選択できますが、上書きする前にバックアップを取得しておくことをお忘れなく。

参考:ssh-keygen使い方まとめ(自分用)

2. Azureでテスト用環境の構築

手順

接続テスト用に以下の環境を構築します。

  • OSの種類:Linux
  • イメージ:Ubuntu Server 20.04 LTS - x64 Gen2
  • サイズ:Standard_B2s
  • ユーザー名:azureuser

作成方法は以下の通りです。

  1. AzureのPortalからリソースの作成で仮想マシンを作成する

  2. 基本セクションでサブスクリプションやリソースグループなどを入力する
    原則デフォルトの値で問題ないですが、以下の項目については変更する

    • SSH公開キーのソース:既存の公開キーを使用
    • SSH公開キー:1. 公開鍵、秘密鍵の作成で作成した、公開鍵をメモ帳などで開き、その値を入力する(改行しないように注意)
    • パブリック受信ポート:選択したポートを許可する
    • 受信ポートを選択:SSH(22)
  3. 確認および作成セクションから作成ボタンをクリックする

補足

以下のようにSSH公開キーのソースを"新しいキーの組の生成"にすると、VM作成時に新しく鍵が作成されます。
ただし、OpenSSH形式ではなくPem形式となりますので、システムの要件を確認し自分に必要な鍵を生成、登録してください。

3. テスト接続

さて、ここまで来たら一度接続できるかテストしてみます。
ローカルPCからAzure上のVMに対して、公開鍵認証で接続をしてみます。

手順

  1. AzureのPortalから2で作成したVMのリソースページを開きます
  2. 設定 > "接続"のセクションを開きます
  3. 接続方法に"ネイティブSSH"を選択し、接続方法の詳細を表示させます
  4. ③SSHコマンドのコピーと実行で秘密鍵のパスを指定し、コマンドをコピーします
  5. PowerShellやコマンドプロンプトから、5のコマンドを実行します
  6. パスフレーズを設定している場合は、パスフレーズを入力します

補足

Azureに登録している鍵を入れ替えたい場合などは、設定>"接続"ページから"その他のオプション"を選択し、"パスワードまたはキーのリセット"から、ユーザー名を変更したり、カギを追加したり変更したりできます。

4. パスフレーズの入力の省略

パスフレーズの設定をしている場合、接続する際にパスフレーズを毎回入力する必要があり、システムなどで制御している場合(例:日時バッチでSFTPでファイル送付するなど)に邪魔になってきます。

OpenSSH Authentication Agentでは秘密鍵とパスフレーズのペアを登録することで、パスフレーズの入力を省くことが出来ます。
今回はパスフレーズの入力を省略する部分を設定していきます。

参考:【Windows】OpenSSH Authentication Agentを使用する

手順

  1. OpenSSH Authentication Agentを起動させる
    1. Windowsのサービスの画面を開く(ファイル名を指定して実行(ファイル名:services.msc))
    2. OpenSSH Authentication Agentを右クリックしプロパティを開く
    3. スタートアップの種類を"自動"に変更する
    4. サービスの状態が"停止"の場合は、開始する
  2. PowerShellなどで以下のコードを実行する(秘密鍵へのパスが異なる場合は適宜変更してください)
    ssh-add "C:\Users\ユーザー名\.ssh\id_rsa"
    
  3. パスフレーズの入力を求められるためパスフレーズを入力する

補足

OpenSSHのバージョンによっては以下のエラーが出ます。
こちらはOpenSSHのバージョンが古い場合に出るみたいです。

warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
azureuser@IPアドレス: Permission denied (publickey)

OpenSSHのバージョンは以下のコードで確認できます。
OpenSSHのバージョンが最新であるか、カギを作成した端末のバージョンとの差異があるかなど確認をして対処してください。

ssh -V
0
0
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
0
0