STEP 3 — SSH Keys / 3-2

鍵で、安全に
つなぐ。

前章で GitHub に push しましたね。毎回パスワードを入れるのは面倒で、安全面でも不安があります。そこで使うのが SSH(エスエスエイチ)公開鍵・秘密鍵の仕組み。一度設定すれば、パスワードなしで、しかも安全に、GitHub やサーバーへつなげるようになります。仕組みはたとえ話で、設定は手順どおりに。怖い見た目ほど、難しくありません。

この章のゴール

  • 公開鍵・秘密鍵の関係を、自分の言葉で説明できる
  • 自分のパソコンで鍵ペアを作れる
  • GitHub に SSH 鍵を登録して、パスワードなしで push できる
  • サーバーへ SSH / SFTP で安全につなぐ方法を知っている

SSH とは何か

SSH は、はなれた場所にあるコンピューター(GitHub のサーバーや、あなたのレンタルサーバー)と、安全に・暗号化してやりとりするための仕組みです。途中で誰かに盗み見られても中身が読めないように、通信に鍵をかけてくれます。

このとき本人確認に使うのが、これから作る鍵ペア。パスワードの代わりに「鍵」で「確かにあなたですね」と認証する——これが SSH 鍵認証です。パスワードより安全で、しかも入力の手間がありません。

公開鍵と秘密鍵 — 2つで1組

鍵は必ずペア(2つで1組)で作られます。性質が正反対で、役割がはっきり分かれています。

  1. 公開鍵(こうかいかぎ):人に渡してよい鍵。GitHub やサーバーに「これが私の鍵です」と登録する側。名前のとおり、公開して大丈夫です。
  2. 秘密鍵(ひみつかぎ):絶対に人に渡してはいけない鍵。あなたのパソコンの中だけに置いておく。これが本人の証明そのものです。

たとえるなら、公開鍵が「南京錠」、秘密鍵が「その鍵」です。南京錠(公開鍵)は相手に渡して、好きなところに付けてもらってかまいません。でも、それを開けられるのは、手元の鍵(秘密鍵)を持つあなただけ。だから安全なのです。

となりに座って一言

覚え方はシンプル。「公開鍵は配ってよい、秘密鍵は絶対に出さない」。この一線さえ守れば大丈夫です。セキュリティの章で出てくる「秘密の値を公開しない」と、まったく同じ考え方ですね。秘密鍵を GitHub に push してしまう、などは絶対に避けてください。

① 鍵ペアを作る

では実際に、自分のパソコンで鍵ペアを作ります。ターミナルで次のコマンドを実行します(メールアドレスはご自分のものに)。

ターミナルに入力
ssh-keygen -t ed25519 -C "you@example.com"

いくつか質問されますが、基本は Enter キーで進めて大丈夫です。「保存場所はどこ?」はそのまま Enter(標準の場所に保存)、「パスフレーズは?」は、さらに安全にしたい場合だけ設定します(空のまま Enter でも可)。これで、鍵ペアが標準の場所(多くは ~/.ssh/ フォルダ)に作られました。

  1. id_ed25519 … 秘密鍵(=出してはいけない方)
  2. id_ed25519.pub … 公開鍵(=登録する方。末尾の .pub が目印)

独学だと、ここで止まる

どっちが公開鍵か分からなくなる

見分け方は簡単です。ファイル名の末尾に「.pub」が付いている方が公開鍵(pub = public = 公開)。登録するときに使うのは、必ずこの .pub の方です。.pub の付かない方(秘密鍵)は、絶対にコピーして貼ったり送ったりしない。迷ったら「どっちが公開鍵で、登録に使うのはどっち?」と Claude に聞けば、その場で確認できます。

② GitHub に公開鍵を登録する

作った公開鍵を GitHub に登録すると、以降はパスワードなしで push できるようになります。まず、公開鍵の中身を表示してコピーします。

ターミナルに入力(公開鍵を表示)
cat ~/.ssh/id_ed25519.pub

表示された ssh-ed25519 で始まる1行ぜんぶをコピーします。そして GitHub 側で登録します。

  1. GitHub にログインし、右上のアイコン →「Settings」を開きます。
  2. 左メニューの「SSH and GPG keys」→「New SSH key」を押します。
  3. Title に分かりやすい名前(例:MacBook)を入れ、Key 欄にさっきコピーした公開鍵を貼り付けて「Add SSH key」。

登録できたら、ちゃんとつながるか確認します。

ターミナルに入力(接続テスト)
ssh -T git@github.com

Hi (あなたの名前)! You've successfully authenticated...」のようなメッセージが出れば成功です。

③ push を SSH 経由に切り替える

すでに HTTPS(https://〜)で GitHub とつないでいる場合は、接続先を SSH 方式に切り替えると、鍵認証が効くようになります。リポジトリのフォルダで、次のように行います。まず今の接続先を確認します。

ターミナルに入力(現在の接続先を確認)
git remote -v

https:// で始まっていたら、SSH のアドレス(git@github.com: で始まる形)に切り替えます。アドレスは GitHub のリポジトリページの「Code」ボタン →「SSH」タブで確認できます。

ターミナルに入力(SSHへ切り替え)
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git

これ以降、git push がパスワードなしで通るようになります。切り替えやアドレスが不安なら、Claude にこう頼むのが確実です。

Claude Code へのプロンプト
このリポジトリのGitHubの接続を、HTTPSからSSHに切り替えたいです。今の接続先を確認して、正しいSSHのアドレスに切り替えるコマンドを、このプロジェクトに合わせて教えてください。

④ サーバーへ SSH / SFTP でつなぐ

同じ鍵の仕組みは、あなたのレンタルサーバーにも使えます。サーバーの管理画面で公開鍵を登録しておけば、パスワードなしで安全につなげます。つなぎ方は主に2つです。

  1. SSH 接続:サーバーの中に入って操作する方法。ssh ユーザー名@サーバーのアドレス でログインできます。
  2. SFTP 転送:FTP の安全版。SSH の仕組みでファイルを暗号化して送ります。WordPress の自動公開で出てきた FTPS と並ぶ、安全なファイル転送の選択肢です。
ターミナルに入力(サーバーへSSHログインの例)
ssh username@your-server.example.com

となりに座って一言

サーバーごとに「鍵の登録場所」や「使えるポート」が少し違います。そこはサーバーのマニュアルを見るか、Claude に聞くのが早道。「このレンタルサーバー(◯◯)に、SSH公開鍵を登録して接続する手順を教えて」と、サーバー名を添えて頼めば、あなたの環境に合った案内が返ってきます。手元の鍵はもう作ってあるので、あとは登録するだけです。

独学だと、ここで止まる

Permission denied (publickey) と出る

「鍵で認証できませんでした」というエラーの代表格です。よくある原因は、公開鍵の登録ミス(貼り付けたときに一部が欠けた・改行が混ざった)、登録した鍵と手元の秘密鍵が対になっていない鍵ファイルの置き場所や権限が違うのいずれか。あわてず、エラー文をそのまま Claude に貼って「SSHでこのエラーが出ます。原因の切り分けと直し方を教えて」と聞けば、順を追って確認してくれます。

この章で出てきた言葉

SSH
はなれたコンピューターと、暗号化して安全にやりとりする仕組み。鍵で本人確認します。
公開鍵
人に渡してよい鍵。GitHub やサーバーに登録する側。ファイル名の末尾が .pub。
秘密鍵
絶対に人に渡さない鍵。自分のパソコンの中だけに置く、本人の証明そのもの。
鍵ペア
公開鍵と秘密鍵の2つで1組。ssh-keygen で作ります。
SFTP
SSH の仕組みでファイルを安全に転送する方法。FTP の暗号化された安全版。
パスフレーズ
秘密鍵にさらにかける合言葉。設定すると、鍵が盗まれても悪用されにくくなります。

この章のまとめ

  • SSH 鍵認証で、パスワードなし&安全につなげる
  • 鍵はペア。公開鍵は配ってよい/秘密鍵は絶対に出さない
  • ssh-keygen で作成 → 公開鍵を GitHub に登録 → 接続を SSH に切替で push が楽に
  • 同じ鍵でサーバーへ SSH / SFTP。詰まったらエラー文を Claude に貼る

Support

鍵の設定で、つまずいたら。

鍵まわりは、一度対面で通せば「なんだ、こういうことか」と腑に落ちる定番ポイントです。受講中の方は、あなたの環境で一緒に設定しましょう。

電話で相談 080-6946-4006