📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の9版が非表示) | |||
| 5行目: | 5行目: | ||
== 公開鍵と秘密鍵の作成 == | == 公開鍵と秘密鍵の作成 == | ||
==== | ==== RHEL / SUSE / Raspberry Pi ==== | ||
RHEL、SUSE、Raspbianには、標準でOpenSSHがインストールされている。<br> | |||
<br> | |||
秘密鍵と公開鍵を作成する。<br> | |||
* <code>-t</code>オプション | |||
*: 指定しない場合、RSAアルゴリズムを使用した2048ビットの鍵ペアが生成される。 | |||
*: 異なるアルゴリズム(例: ed25519)や鍵サイズを使用する場合は、<code>-t</code>(タイプ)オプションと<code>-b</code>(ビット数)オプションを指定する。 | |||
*: <br> | |||
* <code>-f</code>オプション | |||
*: 特定のファイル名やディレクトリで鍵ペアを保存する場合は、<code>-f</code>オプションを使用してファイル名を指定する。 | |||
*: <br> | |||
*: 指定しない場合、生成された鍵ペアは、デフォルトでは次のファイルに保存される。 | |||
*: 公開鍵: ~/.ssh/id_rsa.pub | |||
*: 秘密鍵: ~/.ssh/id_rsa | |||
*: <br> | |||
* <code>-N</code>オプション | |||
*: パスフレーズを設定する場合、鍵生成時に対話式で設定する、または、<code>-N</code>オプションを使用して設定する。 | |||
<br> | <br> | ||
ssh-keygen -t rsa -b 4096 | ssh-keygen -t rsa -b 4096 | ||
| 33行目: | 47行目: | ||
+----[SHA256]-----+ | +----[SHA256]-----+ | ||
<br> | <br> | ||
==== Windows ==== | ==== Windows ==== | ||
Windows 10には、標準でOpenSSHがインストールされているが、ここでは、TeraTermを使用する。<br> | Windows 10には、標準でOpenSSHがインストールされているが、ここでは、TeraTermを使用する。<br> | ||
| 45行目: | 60行目: | ||
[鍵のパスフレーズ]と[パスフレーズの確認]にパスワードを入力する。<br> | [鍵のパスフレーズ]と[パスフレーズの確認]にパスワードを入力する。<br> | ||
[公開鍵の保存](id_rsa.pubファイル)と[秘密鍵の保存](id_rsaファイル)をクリックして、<br> | [公開鍵の保存](id_rsa.pubファイル)と[秘密鍵の保存](id_rsaファイル)をクリックして、<br> | ||
それぞれの鍵をクライアントPCの任意のフォルダに保存する。<br><br> | それぞれの鍵をクライアントPCの任意のフォルダに保存する。<br> | ||
<br> | |||
<u>※注意</u><br> | |||
<u>鍵のパスフレーズ無しの場合は秘密鍵だけでログインする。</u><br> | |||
<u>この設定完了後に秘密鍵(id_rsa)を紛失するとログイン出来なくなるため気をつけること。</u><br> | |||
<u>また、秘密鍵が第三者に漏洩すると、ラズパイにログインされてしまうので厳重に保管すること。</u><br> | |||
[[ファイル:Raspberry-Pi-SSH-Config-03.png|フレームなし|中央]] | [[ファイル:Raspberry-Pi-SSH-Config-03.png|フレームなし|中央]] | ||
<br><br> | <br><br> | ||
== 公開鍵の設定 == | == 公開鍵の設定 == | ||
SSHサーバのホームディレクトリに.sshディレクトリを作成して、パーミッションを変更する。 | SSHサーバのホームディレクトリに.sshディレクトリを作成して、パーミッションを変更する。<br> | ||
mkdir ~/.ssh | mkdir ~/.ssh | ||
chmod 700 ~/.ssh | chmod 700 ~/.ssh | ||
| 60行目: | 76行目: | ||
.sshディレクトリ内に、公開鍵ファイルであるauthorized_keysファイルを作成する。<br> | .sshディレクトリ内に、公開鍵ファイルであるauthorized_keysファイルを作成する。<br> | ||
touch ~/.ssh/authorized_keys | touch ~/.ssh/authorized_keys | ||
<br> | |||
上記のセクションで生成したid_rsa.pubファイル(公開鍵ファイル)の内容を、authorized_keysファイルにコピーする。<br> | 上記のセクションで生成したid_rsa.pubファイル(公開鍵ファイル)の内容を、authorized_keysファイルにコピーする。<br> | ||
nano ~/.ssh/authorized_keys | nano ~/.ssh/authorized_keys | ||
| 69行目: | 86行目: | ||
<br><br> | <br><br> | ||
== | == SSHの設定 == | ||
==== rootユーザのログインの禁止 ==== | |||
SSH接続時、rootユーザでのログインを禁止するため、以下のコマンドを実行する。<br> | SSH接続時、rootユーザでのログインを禁止するため、以下のコマンドを実行する。<br> | ||
sudo nano /etc/ssh/sshd_config | sudo nano /etc/ssh/sshd_config | ||
<br> | |||
最下行に以下の設定を追記する。<br> | |||
PermitRootLogin no | PermitRootLogin no | ||
<br> | |||
==== 公開鍵のログインの設定 ==== | |||
== | |||
以下のコマンドを入力して、sshd_configファイルを開く。<br> | 以下のコマンドを入力して、sshd_configファイルを開く。<br> | ||
sudo nano /etc/ssh/sshd_config | sudo nano /etc/ssh/sshd_config | ||
<br> | <br> | ||
パスワード認証を不可にするため、PasswordAuthenticationをnoに変更する。<br> | |||
[[ファイル:Raspberry-Pi-SSH-Config-04.png|フレームなし|中央]] | [[ファイル:Raspberry-Pi-SSH-Config-04.png|フレームなし|中央]] | ||
<br> | <br> | ||
公開鍵認証を可能にするため、PubkeyAuthenticationをyesに変更する。<br> | |||
<br> | |||
設定を有効にするため、SSHを再起動する。<br> | |||
sudo systemctl restart sshd | sudo systemctl restart sshd | ||
<br> | <br> | ||
これにより、パスワードでのログインができなくなり、秘密鍵を持っているユーザだけがログインできる。<br> | |||
<br><br> | |||
== SSH Agent == | |||
SSH Agentとは、公開鍵認証方式において、事前に秘密鍵を登録することにより、<code>ssh</code> コマンドの実行時に自動的に秘密鍵を適用して認証処理を行うツールである。<br> | |||
これにより、認証時のパスフレーズの入力は、秘密鍵の登録時に1度行うだけで済む。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>SSH Agentに登録された秘密鍵は、エージェントが起動している間はメモリ上に保持される。</u><br> | |||
<u>セキュリティを考慮して、使用後は適切に終了する、または、有効期限付きで鍵を登録することを推奨する。</u><br> | |||
<br> | |||
<u>また、共有環境や公共の端末では、SSH Agentの使用に十分注意する必要がある。</u><br> | |||
<br> | |||
==== SSH Agentの起動 ==== | |||
SSH Agentを使用するには、エージェントを起動する必要がある。<br> | |||
<br> | |||
まず、SSH Agentを起動して環境変数を設定する。<br> | |||
eval "$(ssh-agent -s)" | |||
<br> | |||
起動に成功した場合は、<u>Agent pid (プロセスID)</u> が表示される。<br> | |||
<br> | |||
==== 秘密鍵の登録 ==== | |||
SSH Agentに秘密鍵を登録するには、<code>ssh-add</code> コマンドを使用する。<br> | |||
ssh-add ~/.ssh/id_rsa | |||
<br> | |||
パスフレーズが設定されている秘密鍵の場合、登録時にパスフレーズの入力が求められる。<br> | |||
1度登録すれば、SSH Agentが起動している間はパスフレーズの再入力は不要となる。<br> | |||
<br> | |||
==== ssh-addコマンド一覧 ==== | |||
下表に、<code>ssh-add</code> コマンドの使用方法を示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | style="background-color:#fefefe;" | |||
|+ ssh-addコマンド | |||
|- | |||
! コマンド !! 意味 | |||
|- | |||
| ssh-add <秘密鍵ファイルのパス> || 秘密鍵を登録する。 | |||
|- | |||
| ssh-add -l || 登録されている鍵のFingerprints一覧を表示する。 | |||
|- | |||
| ssh-add -L || 登録されている鍵の公開鍵一覧を表示する。 | |||
|- | |||
| ssh-add -d <秘密鍵ファイルのパス> || 登録されている鍵を削除する。 | |||
|- | |||
| ssh-add -D || 登録されている全ての鍵を削除する。 | |||
|- | |||
| ssh-add -t <有効期限> <秘密鍵ファイルのパス> || 指定した有効期限付きで秘密鍵を登録する。(例:3600秒) | |||
|} | |||
</center> | |||
<br> | |||
==== SSH Agentの自動起動設定 ==== | |||
システム起動時に自動的にSSH Agentを起動して秘密鍵を登録する場合、使用しているシェルの設定ファイルに設定を追加する。<br> | |||
<br> | |||
* Bash / Zshの場合 | |||
<syntaxhighlight lang="sh"> | |||
# ~/.profileファイル または ~/.zprofileファイル等 | |||
# SSH Agentの起動 | |||
if [ -z "$SSH_AUTH_SOCK" ]; then | |||
eval "$(ssh-agent -s)" | |||
ssh-add ~/.ssh/id_rsa | |||
fi | |||
</syntaxhighlight> | |||
<br> | |||
* Fishの場合 | |||
<syntaxhighlight lang="fish"> | |||
# ~/.config/fish/config.fishファイル | |||
# SSH Agentの起動 | |||
if test -z "$SSH_AUTH_SOCK" | |||
eval (ssh-agent -c) | |||
ssh-add ~/.ssh/id_rsa | |||
end | |||
</syntaxhighlight> | |||
<br> | |||
==== SSH Agentのプロセス確認と終了 ==== | |||
現在実行中のSSH Agentのプロセスを確認する。<br> | |||
ps aux | grep ssh-agent | |||
<br> | |||
SSH Agentを終了する。<br> | |||
ssh-agent -k | |||
<br><br> | <br><br> | ||
| 115行目: | 216行目: | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] | ||