STEP 3 — SSH Keys / 3-2
鍵で、安全に
つなぐ。
前章で GitHub に push しましたね。毎回パスワードを入れるのは面倒で、安全面でも不安があります。そこで使うのが SSH(エスエスエイチ) と公開鍵・秘密鍵の仕組み。一度設定すれば、パスワードなしで、しかも安全に、GitHub やサーバーへつなげるようになります。仕組みはたとえ話で、設定は手順どおりに。怖い見た目ほど、難しくありません。
この章のゴール
- 公開鍵・秘密鍵の関係を、自分の言葉で説明できる
- 自分のパソコンで鍵ペアを作れる
- GitHub に SSH 鍵を登録して、パスワードなしで push できる
- サーバーへ SSH / SFTP で安全につなぐ方法を知っている
SSH とは何か
SSH は、はなれた場所にあるコンピューター(GitHub のサーバーや、あなたのレンタルサーバー)と、安全に・暗号化してやりとりするための仕組みです。途中で誰かに盗み見られても中身が読めないように、通信に鍵をかけてくれます。
このとき本人確認に使うのが、これから作る鍵ペア。パスワードの代わりに「鍵」で「確かにあなたですね」と認証する——これが SSH 鍵認証です。パスワードより安全で、しかも入力の手間がありません。
公開鍵と秘密鍵 — 2つで1組
鍵は必ずペア(2つで1組)で作られます。性質が正反対で、役割がはっきり分かれています。
- 公開鍵(こうかいかぎ):人に渡してよい鍵。GitHub やサーバーに「これが私の鍵です」と登録する側。名前のとおり、公開して大丈夫です。
- 秘密鍵(ひみつかぎ):絶対に人に渡してはいけない鍵。あなたのパソコンの中だけに置いておく。これが本人の証明そのものです。
たとえるなら、公開鍵が「南京錠」、秘密鍵が「その鍵」です。南京錠(公開鍵)は相手に渡して、好きなところに付けてもらってかまいません。でも、それを開けられるのは、手元の鍵(秘密鍵)を持つあなただけ。だから安全なのです。
となりに座って一言
覚え方はシンプル。「公開鍵は配ってよい、秘密鍵は絶対に出さない」。この一線さえ守れば大丈夫です。セキュリティの章で出てくる「秘密の値を公開しない」と、まったく同じ考え方ですね。秘密鍵を GitHub に push してしまう、などは絶対に避けてください。
① 鍵ペアを作る
では実際に、自分のパソコンで鍵ペアを作ります。ターミナルで次のコマンドを実行します(メールアドレスはご自分のものに)。
ssh-keygen -t ed25519 -C "you@example.com"
いくつか質問されますが、基本は Enter キーで進めて大丈夫です。「保存場所はどこ?」はそのまま Enter(標準の場所に保存)、「パスフレーズは?」は、さらに安全にしたい場合だけ設定します(空のまま Enter でも可)。これで、鍵ペアが標準の場所(多くは ~/.ssh/ フォルダ)に作られました。
- id_ed25519 … 秘密鍵(=出してはいけない方)
- id_ed25519.pub … 公開鍵(=登録する方。末尾の .pub が目印)
独学だと、ここで止まる
どっちが公開鍵か分からなくなる
見分け方は簡単です。ファイル名の末尾に「.pub」が付いている方が公開鍵(pub = public = 公開)。登録するときに使うのは、必ずこの .pub の方です。.pub の付かない方(秘密鍵)は、絶対にコピーして貼ったり送ったりしない。迷ったら「どっちが公開鍵で、登録に使うのはどっち?」と Claude に聞けば、その場で確認できます。
② GitHub に公開鍵を登録する
作った公開鍵を GitHub に登録すると、以降はパスワードなしで push できるようになります。まず、公開鍵の中身を表示してコピーします。
cat ~/.ssh/id_ed25519.pub
表示された ssh-ed25519 で始まる1行ぜんぶをコピーします。そして GitHub 側で登録します。
- GitHub にログインし、右上のアイコン →「Settings」を開きます。
- 左メニューの「SSH and GPG keys」→「New SSH key」を押します。
- 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」タブで確認できます。
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git
これ以降、git push がパスワードなしで通るようになります。切り替えやアドレスが不安なら、Claude にこう頼むのが確実です。
このリポジトリのGitHubの接続を、HTTPSからSSHに切り替えたいです。今の接続先を確認して、正しいSSHのアドレスに切り替えるコマンドを、このプロジェクトに合わせて教えてください。
④ サーバーへ SSH / SFTP でつなぐ
同じ鍵の仕組みは、あなたのレンタルサーバーにも使えます。サーバーの管理画面で公開鍵を登録しておけば、パスワードなしで安全につなげます。つなぎ方は主に2つです。
- SSH 接続:サーバーの中に入って操作する方法。
ssh ユーザー名@サーバーのアドレスでログインできます。 - SFTP 転送:FTP の安全版。SSH の仕組みでファイルを暗号化して送ります。WordPress の自動公開で出てきた FTPS と並ぶ、安全なファイル転送の選択肢です。
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