LoginSignup
1
0

SSH 公開鍵認証のための設定

Last updated at Posted at 2024-02-29

 Windows のユーザー tanaka が Linux マシン svr(IP アドレス:192.168.1.5)に tanaka のアカウントでログインするケースを例に次のコマンドで SSH 公開鍵認証を行うための設定について記す。VSCode の Remote Development を利用するユーザーにとっては必須の設定である。

% ssh svr

既製の鍵の確認

 ログイン時に保管庫内の秘密鍵を参照する ssh-agent というサービスを利用する。このサービスが実行されているか否かは次のコマンドで確認することができる。

% sc query ssh-agent

 ここで STATE が STOPPED になっている場合は管理者としてコマンドプロンプトを開いて次のコマンドを実行した後にウィンドウを閉じる。

% sc start ssh-agent

 元のコマンドプロンプトに戻り ssh-add コマンドで鍵の登録状況を確認する。

% ssh-add -l

 ここで何も表示されない場合は次項に進み、カレントディレクトリに拡張子が .pub であるファイルが存在する場合1「公開鍵の転送」に進む。これが存在しない場合は次のコマンドを実行して公開鍵を再生したうえで「公開鍵の転送」に進む。

% powershell -command "ssh-add -L | select-object -first 1" | findstr /v /r /c:"^\ *$" > id_rsa.pub

鍵の生成・登録

ssh-keygen を実行して .ssh に秘密鍵 id_rsa と公開鍵 id_rsa.pub を生成する。

% cd C:\Users\suzuki\.ssh
% ssh-keygen

 この際「Enter passphrase (empty for no passphrase):」と「Enter same passphrase again:」に対してはパスフェーズ(例えば win)を入力する。
 次いで以下のコマンドで秘密鍵を ssh-agent に登録する。途中「Enter passphrase for id_rsa:」に対して上記のパスフェーズを入力する。

% ssh-add id_rsa 

公開鍵の転送

 過去に IP アドレスが 192.168.1.5 のサーバーとの接続があると失敗するので、念のためこれをチェックしたうえで scp コマンドで svr に公開鍵を転送する。

% ssh-keygen -R 192.168.1.5
% scp id_rsa.pub tanaka@192.168.1.5:/home/tanaka

 パスワードの入力後に表示される「Are you sure you want to continue connecting (yes/no/[fingerprint])?」に「yes」で応答すると svr のサーバーのホスト鍵が .ssh\known_hosts に追加される。

公開鍵の登録

 パスワード認証で svr にログインする。

% ssh tanaka@192.168.1.5

/home/tanaka/.ssh ディレクトリが存在しない場合は以下を実行する。

$ mkdir .ssh
$ touch .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

 転送済の id_rsa.pub.ssh/authorized_keys に追加する。

$ cat id_rsa.pub >> .ssh/authorized_keys
$ rm id_rsa.pub
$ exit

最終テスト

 交換鍵認証での接続をテストする。

% ssh -vA tanaka@192.168.1.5

 パスワードが求められる場合は「Cntrl+c」で接続を絶ち、表示されているログから原因をつきとめて対処する。
 成功した場合は秘密鍵を削除する。

% del id_rsa

.ssh\config の編集

 入力を簡略化するため .ssh\config に以下の行を追加する。以降、どこからでも冒頭に示したコマンドで svr との交信が可能になる。

Host svr
    Hostname 192.168.1.5
    User tanaka
    ForwardAgent yes
  1. ファイル名が id_rsa.pub 以外である場合は以下に記事における id_rsa.pub をそれに置き換える。

1
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
1
0