📶
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