📶

LinuxサーバーへのSSH公開鍵認証の方法

に公開

はじめに

  • こんにちは、だいすーです!
    今回は、SCP (Secure Copy Protocol) を使用して公開鍵ファイルを転送する方法と
    公開鍵ファイルを直接 Linux サーバーに転送し、手動で authorized_keys に追加する方法について解説していこうと思います。

なぜこの記事を書こうと思ったか

  • 最近、自分でLinuxサーバーを構築する機会がありました。その際、公開鍵認証でSSHに接続する際に、詰まってしまうところがあったので、調べたことをまとめて共有しようと思いました。

前提条件:

  • Windows 側の PowerShell または WSL で OpenSSH クライアントがインストールされている。
    Linux サーバーに初回接続時、パスワード認証で接続できること。

手順:

Windows 側で鍵ペアの生成

コマンドプロンプトを起動します。
ssh-keygen -t rsa -b 4096
デフォルトの保存場所 (C:\Users\あなたのユーザー名.ssh\id_rsa) を選択し、パスフレーズを設定します。

公開鍵ファイルを Linux サーバーに転送。

scp ~/.ssh/id_rsa.pub user@linux_server_ip:/tmp/id_rsa.pub
user: Linux サーバーのユーザー名。
linux_server_ip: Linux サーバーの IP アドレス。
/tmp/id_rsa.pub: Linux サーバー上の一時的な保存場所です。

Linux サーバーに接続し、公開鍵を authorized_keys に追加します。

SSH で Linux サーバーに接続します (この時点ではパスワード認証)。
ssh your_username@linux_server_ip
ログイン後、以下のコマンドを実行します。

mkdir -p .ssh
chmod 700 .ssh
cat /tmp/id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm /tmp/id_rsa.pub  # 一時ファイルを削除# 
chown hal:hal .ssh
chown hal:hal .ssh/authorized_keys
exit # ログアウト

接続の確認:

再度 SSH 接続を試み、公開鍵認証が成功するか確認します。
ssh username@linux_server_ip

メリット:

手動での貼り付けミスを防げる。

まとめ

  • 今回SSHの公開鍵認証について調べ、SSHの構造について理解をすることができました。
    この記事が、DNSについて学びたい方の参考になれば嬉しいです!

Discussion