環境
| 接続元 | Windows | 
| 接続先 | Ubuntu 22.04 LTS Server | 
接続元(Windows)の作業手順
前準備
WindowsでPowershellを起動します。
公開鍵認証用のキーペアを作成
cd $env:USERPROFILE
ssh-keygen -t ed25519 -f .\.ssh\id_ed25519_ubuntu -C ""RSAよりも強固でパフォーマンスも良い暗号化アルゴリズムである “Ed25519” を使用します。
実行するとWindowsの “%UserProfile%\.ssh” ディレクトリの中に、次の2つのファイルが作成されます。
| ファイル名 | 用途 | 
|---|---|
| id_ed25519_ubuntu | 秘密鍵 | 
| id_ed25519_ubuntu.pub | 公開鍵 | 
ssh-keygenのオプションについて
| オプション | 意味 | 
|---|---|
-t ed25519 | ed25519暗号化アルゴリズム | 
-f .\.ssh\id_ed25519_ubuntu | ファイル名を”id_ed25519_ubuntu”にする。 (指定しない場合、”%UserProfile%\.ssh/id_ed25519″になる)  | 
-C "" | ファイル内末尾のコメント部を記載しない。 (指定しない場合、コメント部に「<接続元ユーザー名>@<接続元ホスト名>」が記載される)  | 
公開鍵をサーバにコピーする
cat .\.ssh\id_ed25519_ubuntu.pub | ssh <接続先ユーザー名>@<接続先ホスト名orIPアドレス> `
" `
mkdir -p ~/.ssh && chmod 700 ~/.ssh && `
cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys `
"作成した公開鍵を接続先のサーバにコピーします。
実際に接続できるか確認する
ssh -i .\.ssh\id_ed25519_ubuntu <接続先ユーザー名>@<接続先ホスト名orIPアドレス>
# ssh接続できることを確認
exit公開鍵認証でssh接続ができることを確認したら、一旦exitでssh接続を終了します。
sshコマンドのオプションについて
| オプション | 意味 | 
|---|---|
-i .\.ssh\id_ed25519_ubuntu | 秘密鍵ファイルを指定します。 | 
sshコマンドを短縮する (エイリアス定義)
毎回、上の長いコマンドを使うのは大変なので、エイリアス定義を追加します。
「%UserProfile%\.ssh\config」ファイルを開きます(無い場合は作成)。
以下の内容を記入します。<接続先エイリアス名>には接続先名として自分が分かりやすい名前を指定してください。
Host <接続先エイリアス名>
  HostName <接続先ホスト名orIPアドレス>
  User <接続先ユーザー名>
  Port 22
  IdentityFile ~/.ssh/id_ed25519_ubuntu【補足】vimで編集開始するときは i キーを押して編集(Insert)モードに入ります。
【補足】vimで編集が終わった後はESCキーを押したあと「:wq」で保存して抜けます。
接続先のUbuntuサーバーに接続する
ssh <接続先エイリアス名>これで公開鍵認証でのsshログインが簡単にできるようになりました。
接続先(Ubuntu)の作業手順
パスワード認証を無効化する
まだパスワード認証が有効になっているので、公開鍵認証を使わなくてもパスワードが分かればssh接続できてしまいます。以下の操作でパスワード認証を無効にします。
ssh接続の設定ファイルを開き、編集します。
sudo vim /etc/ssh/sshd_config編集前
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes   👈 ここのコメントアウト(#)を外して、noにする。編集後
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication nosshdサービスを再起動する
sudo systemctl restart sshdsshd_configの設定内容を反映するため、sshd (ssh接続を受ける常駐プログラム) を再起動します。
以上です!
  
  
  
  

コメント