ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
ssh-keygen とは
ssh-keygen は、SSH の公開鍵認証で使う鍵ペア(秘密鍵と公開鍵)を生成するコマンドです。パスワード認証と違い、総当たり攻撃で破られる心配がほとんどなく、自動化にも向いています。
仕組みは単純です。公開鍵をサーバに登録しておき、接続時に「その公開鍵に対応する秘密鍵を持っているか」をサーバが確かめるという流れで、秘密鍵そのものはネットワークを流れません。
[公開鍵認証の流れ]
クライアント サーバ
| |
| -- 接続要求(この公開鍵で) --> |
| | authorized_keys に
| | その公開鍵があるか確認
| <-- ランダムな文字列(チャレンジ)|
| |
| 秘密鍵で署名して返す ---------> | 公開鍵で署名を検証
| |
| <-------- 認証成功 ----------- |
| |
※ 秘密鍵は一度もネットワークを流れない
鍵を作る
# 推奨: Ed25519
ssh-keygen -t ed25519 -C "you@example.com"
# 古い機器に繋ぐなど、Ed25519 が使えない場合は RSA 4096
ssh-keygen -t rsa -b 4096 -C "you@example.com"
# ファイル名を指定して作る(用途ごとに分けたいとき)
ssh-keygen -t ed25519 -C "github" -f ~/.ssh/id_ed25519_github
実行すると 2 つ聞かれます。
| 質問 | 意味 | おすすめ |
|---|---|---|
| Enter file in which to save the key | 保存先。空 Enter で既定の ~/.ssh/id_ed25519 | 用途が 1 つなら既定でよい |
| Enter passphrase | 秘密鍵自体にかけるパスワード | 付ける。ssh-agent と組み合わせれば毎回入力しなくて済む |
できあがるのは 2 ファイルです。
| ファイル | 中身 | 扱い |
|---|---|---|
id_ed25519 | 秘密鍵 | 絶対に外へ出さない。共有・アップロード禁止 |
id_ed25519.pub | 公開鍵 | サーバや GitHub に登録する。人に見せてよい |
主なオプション
| オプション | 意味 |
|---|---|
-t 種類 | 鍵の種類。ed25519 / rsa / ecdsa |
-b ビット数 | 鍵長。RSA で使う(4096 推奨)。Ed25519 では固定なので不要 |
-C コメント | 公開鍵の末尾に付く目印。どのマシンの鍵か分かるようにする |
-f ファイル名 | 保存先を指定 |
-p | 既存の鍵のパスフレーズを変更する |
-y | 秘密鍵から公開鍵を復元して表示する |
-l -f 鍵 | フィンガープリントを表示する |
鍵の種類の選び方
| 種類 | 特徴 | 使うか |
|---|---|---|
| Ed25519 | 短くて速い。強度も十分 | 第一候補 |
| RSA 4096 | 互換性がいちばん広い | Ed25519 非対応の相手に |
| RSA 1024 以下 | 強度が不足 | 使わない |
| ECDSA | 曲線の選定に懸念があるとされる | 積極的には選ばない |
| DSA | 1024 ビット固定。OpenSSH では既定で無効 | 使わない |
公開鍵をサーバに登録する
# いちばん簡単(パスワード認証がまだ使える状態で)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
# 手動でやる場合は、公開鍵の中身を authorized_keys に追記する
# サーバ側でパーミッションを整える(ここが最重要)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
パーミッションが緩いと SSH は鍵を無視します。エラーメッセージが出ないままパスワードを聞かれるので、原因が分かりにくいのが厄介です。接続できないときは真っ先にここを確認してください。
| 対象 | 権限 |
|---|---|
| ホームディレクトリ | 他人に書き込み権限が無いこと(755 など) |
~/.ssh | 700 |
~/.ssh/authorized_keys | 600 |
| 秘密鍵(クライアント側) | 600 |
ssh-agent でパスフレーズの入力を省く
# エージェントを起動して鍵を預ける
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 預けてある鍵を確認
ssh-add -l
# 全部外す
ssh-add -D
これで、パスフレーズ付きの鍵でも入力は 1 回で済みます。パスフレーズを付けない理由にはならないので、必ず付けてください。秘密鍵ファイルが流出しても、パスフレーズがあれば即座には悪用されません。
用途ごとに鍵を分ける
# ~/.ssh/config
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
IdentitiesOnly yes
Host myserver
HostName 203.0.113.10
User deploy
Port 22022
IdentityFile ~/.ssh/id_ed25519_server
IdentitiesOnly yes
この設定があれば ssh myserver だけで繋がります。IdentitiesOnly yes を付けないと、手元の鍵を順番に試して試行回数超過でサーバに拒否されることがあります。鍵が増えてきたら付けておくのが安全です。
FAQ
Q: 秘密鍵をなくしました
A: 復元はできません。新しい鍵ペアを作り直し、サーバ側の authorized_keys から古い公開鍵の行を削除してください。
Q: 鍵を作ったのにパスワードを聞かれます
A: ほぼパーミッションの問題です。サーバ側の ~/.ssh(700)と authorized_keys(600)、それにホームディレクトリが他人に書けない状態かを確認してください。ssh -v で詳細ログを見ると原因がつかめます。
Q: 同じ鍵を複数のサーバで使い回していいですか?
A: 動きますが、1 つ漏れると全部に影響します。少なくとも「業務用」と「個人用」は分けてください。
Q: 公開鍵をなくしました
A: 秘密鍵から復元できます。ssh-keygen -y -f ~/.ssh/id_ed25519 の出力が公開鍵です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Linux(Mac)クライアントからLinuxサーバーへのSSH鍵接続
- Cygwinを使用したSSH接続方法
- エラー一覧
- ssh-keygenによる鍵生成
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Laravel 記事一覧55件|環境構築・ルーティング・DB・エラー対処 2026-09-07 07:45:13
- Javaの定数 2026-09-07 07:45:13
- Spring Framework 記事一覧31件|DI・設定・例外の対処 2026-09-07 07:45:13
- Oracle DROP USERでユーザー削除|CASCADE・接続中ユーザーの対処 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- SQLとは|DDL・DMLとリレーショナルデータベース操作の基本 2026-09-07 07:45:13
- NetBeansでTomcatを起動する手順|サーバ登録・ポート・トラブル対処 2026-09-07 07:45:13
- hostnameコマンドの使い方|Windows・Linux・macOSでホスト名確認 2026-09-07 07:45:13
- HTML video要素の使い方|source・自動再生・muted・playsinline 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- HTML a要素の使い方|href・target・rel noopenerのセキュリティ 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?