「SSHキー」は、サーバ管理やリモート作業、GitHubなどのサービス利用に欠かせない 高い安全性を持った認証手段です。しかし、「メリットとデメリットは何?」「作成や運用の注意点は?」「WindowsとMacでは手順が異なるの?」といった悩みや疑問を感じる方も多いでしょう。
本記事では、SSHキーの仕組みやパスワード認証との違いをわかりやすく解説し、具体的な作成方法やWindowsとMacでの手順の違い、運用上の注意点まで、詳しく解説していきます。
なお、SSHについて詳しく知りたい方はこちらの記事もご覧ください。
▷ SSHとは?初心者にもわかる仕組みや認証方法、メリットを徹底解説!
目次
システム開発会社選びはプロにお任せ完全無料で全国7000社以上からご提案
SSHキーとは?仕組みや認証方法について徹底解説!
SSHキーとは、インターネット経由で 安全にサーバへ接続するための「カギ」の役割を果たすデジタルデータです。従来のパスワード認証よりも高い安全性を確保できることから、多くのエンジニアや企業が利用しています。
ここでは、SSHキーの仕組みや認証方法などを詳しく解説します。
- SSHキーの仕組み
- 公開鍵・秘密鍵の役割とは?
- パスワード認証との違い
SSHサーバについては下記で紹介しています。詳しく知りたい方はこちらもご覧ください。
▷ SSHサーバの仕組みと設定方法とは?安全性を高めるポイントも紹介!
●SSHキーの仕組み
SSH自体は「 Secure Shell(セキュアシェル)」の略で、ネットワーク上で安全に通信するための仕組みです。SSHキーの仕組みは「公開鍵」と「秘密鍵」のペアに基づいています。「公開鍵」は外部に知られても安全な鍵で、接続したいサーバやサービスに事前に登録しておきます。一方「秘密鍵」はユーザーのパソコン内だけに保存し、誰にも見られないように保管しておくことが重要です。
実際の認証手順では、サーバが「この公開鍵とペアになる秘密鍵を持っているか」を判断します。正しい秘密鍵を使ったユーザーだけが認証に成功し、ログインできるようになっているため、第三者が勝手にアクセスすることが非常に難しくなっているのです。
●公開鍵・秘密鍵の役割とは?
公開鍵は、アクセスを許可したいサーバやクラウドサービスに登録するもので、これだけでは誰もログインできません。ユーザーは、鍵ペアのもう一方である「秘密鍵」を使ってログイン申請し、サーバは手元の公開鍵と照合して本人かどうかを判断します。
秘密鍵は、「 デジタルの身分証」といえる存在で、これが漏れた場合、ユーザーになりすましてログインされてしまう危険があります。外部には決して公開しないよう厳重に管理しましょう。
逆に公開鍵は、誰が持っても問題のない性質なので、安心してサーバや他のサービスへ登録できるのが特長です。
●パスワード認証との違い
パスワード認証では、毎回同じパスワードを入力する方法が一般的です。この場合、パスワードが流出したり、推測されたりすることで、外部からの 不正アクセスに遭うリスクが高くなるため、注意が必要です。また、複数サービスで同じパスワードを使い回している場合、1つ流出すると全てのサービスが危険にさらされます。
SSHキー認証では、一度秘密鍵を安全に作成・保存すれば、ログインするたびにパスワードを打つ必要がありません。さらに、パスフレーズという「鍵専用のパスワード」を設定することもでき、 二重のセキュリティ対策を行うこともできます。
SSHキーのメリット
SSHキーには従来のパスワード認証と比べて多くのメリットがあります。ここでは、SSHキーを使用する際の主なメリットを4つ紹介します。
- 高いセキュリティ性
- パスワード不要の利便性
- 自動化やスクリプト運営に最適
- ファイル編集や転送が効率的
●1.高いセキュリティ性
SSHキー最大の特長は、高いセキュリティ性にあります。SSHキーは「公開鍵」と「秘密鍵」のペアで成り立っており、万が一公開鍵が外部に漏れても、それだけで不正アクセスは発生しません。アクセス許可には、正しい秘密鍵と公開鍵の組み合わせが必須なので、秘密鍵は自分専用のデジタル証明書のような役割を果たします。
通信自体もすべて暗号化されるため、ネットワーク上でデータが盗み見られるリスクも抑えられるのも大きなメリットです。また、パスワード認証の場合によく行われる、ブルートフォース攻撃(総当たり攻撃)にも強く、より高いセキュリティ性が特徴です。
●2.パスワード不要の利便性
SSHキー認証では、毎回パスワードを入力する必要がありません。秘密鍵を安全に保管すれば、パスワード入力を省略した スムーズなログインが可能です。
そのため、リモートサーバ管理やGitHubでの作業が格段に効率化でき、パスワード管理の手間や、複数のサービスでパスワードを使い回すリスクがなくなります。また、パスワード漏洩によるセキュリティ事故も防ぐことができるため、初心者にも安心の認証方法といえます。
●3.自動化やスクリプト運営に最適
SSHキー認証は自動化やスクリプト運用に非常に適しています。人の手でパスワードを入力する必要がないため、プログラムやバッチ処理、CI/CD(自動デプロイ)といった「人の手を介さない自動作業」でも安全にリモート接続が可能です。
例えば、GitHubへの自動プッシュやサーバ間のファイル転送、バックアップ処理の自動化などの場面で、 効率化と信頼性向上が期待できます。セキュリティを維持したまま、業務を自動化できる点が大きな魅力です。
●4.ファイル編集や転送が効率的
SSHキーを利用することで、リモートサーバ上のファイル編集や転送作業が快適で安全になります。サーバと即座に接続できるので、作業スピードも向上し、パスワードの打ち込みミスによるストレスも減ります。
さらに、SSHはSCP(Secure Copy Protocol)やSFTP(SSH File Transfer Protocol)といった、安全な ファイル転送プロトコルとも連携できるため、大事なデータを第三者に見られる心配がないのも嬉しいポイントです。
SSHキーのデメリット
SSHキーには多くのメリットがありますが、運用にはいくつか注意すべきデメリットも存在します。ここでは、事前に知っておくべきデメリットを4つ解説します。
- 秘密鍵の管理が必須
- 初期設定や運用の手間
- 鍵の更新が必要
- 秘密鍵紛失時の復旧が困難
●1.秘密鍵の管理が必須
SSHキー認証では、公開鍵と秘密鍵のペアを使いますが、特に秘密鍵は自分自身の「デジタルの身分証」とも言えます。この秘密鍵が他人の手に渡ってしまうと、ユーザーになりすましてサーバにアクセスされる危険性が高まるため、 管理を徹底する必要があります。
管理方法としては、秘密鍵を他人と共有しない、暗号化ドライブや信頼できるUSBメモリなどに保管するなどの方法が一般的です。 SSHキーを安全に運用するためにも、秘密鍵の管理方法には十分に注意しましょう。
●2.初期設定や運用の手間
SSHキーの利用には、最初にペアとなるキーを作成し、公開キーを接続先サーバに接続する必要があります。パスワード認証のみを使っていた場合と比べて、コマンド操作やファイル転送、設定手順がやや複雑に感じられることも多いです。
また、端末に異なるキーを用意する場合や、複数のサービスで運用する場合、管理に手間がかかることもあるため、事前に管理方法を検討しておきましょう。
●3.鍵の更新が必要
SSHキーは一度作成すれば永久に使えるわけではありません。セキュリティの観点から、 数年おきに新しいキーに更新することが推奨されています。
キーの更新時には新しいキーペアの作成と、公開キーの再登録、不要になった古いキーの削除などの作業が発生します。サーバやサービスに登録しているキーの管理が不適切だった場合、更新に時間がかかってしまうこともあるため注意しましょう。
●4.秘密鍵紛失時の復旧が困難
秘密鍵を紛失してしまった場合、サーバなどからの 再発行はできません。高いセキュリティ性を維持するためにも、「公開鍵」「秘密鍵」両方の再作成・再登録が必須となります。
復旧までの手間はもちろん、再度使用可能になるまで多くの時間がかかってしまう場合も多いため注意しましょう。秘密鍵のバックアップを、しっかり取るようにしておくことが大切です。
SSHキーの作成方法を6ステップで解説!
ここでは、SSHキーの具体的な作成方法を6つのステップに分けて解説していきます。自身で作成する場合の参考にしてみてください。
- PCとターミナルを用意する
- 鍵ペアを作成する
- 保存場所・ファイル名を決める
- パスフレーズの設定(任意)
- 公開鍵をサーバやサービスに登録
- 接続テスト
●1.PCとターミナルを用意する
まず、お使いのパソコンとコマンド入力用の「ターミナル」を準備します。 ターミナルとは、コマンド(コマンド文)を直接入力してパソコンを操作できるソフトのことを指します。 Windowsの場合は「PowerShell」や「コマンドプロンプト」、Macの場合は「ターミナル」アプリが利用可能です。
どちらも標準で搭載されているため、 特別なインストールは不要で始められます。
●2.鍵ペアを作成する
続いて、実際にSSHキーの「 キーペア」を作成します。その際によく使われるコマンドが「ssh-keygen」です。この「ssh-keygen」にさまざまなオプションを設定することで、セキュリティ性を向上したり、鍵の用途や所有者をコメントしたりできます。
主なオプション | 説明 | 例 |
---|---|---|
-t | 鍵の種類(アルゴリズム)を指定する | rsa、ed25519、ecdsa、dsa |
-b | 鍵のビット長(鍵の強度)を指定する(RSAなどで使用) | 2048、3072、4096など |
-c | 鍵にコメントや識別用情報をつける | メールやアドレス使用名(「github用」など) |
-f | 秘密鍵ファイルの保存場所・ファイル名を指定する | ~/.ssh/id_rsa_customなど |
-N | パスフレーズを設定する。空白にするとパスフレーズなし | 「strong_passphrase」など |
-q | 実行中の表示を抑えて静かにコマンドを実行する | オプションを付けるだけで使用可能 |
SSHキーを作成する際、用途やセキュリティ要件に合わせて、それぞれ必要なオプションを組み合わせて使用してください。
●3.保存場所・ファイル名を決める
コマンドを入力すると、「キーをどこに保存しますか?」と表示されます。何も入力せずにEnterを押すと、通常は「ホームディレクトリ」に保存されます。
SSHキーを特定の用途や端末で区別したい場合は、ファイル名にわかりやすい名前をつけても問題ありません。保存場所やファイル名は、後からキーを管理しやすいように工夫しておくと良いでしょう。
●4.パスフレーズの設定(任意)
次に、「パスフレーズを入力してください」と表示されます。パスフレーズとは、秘密キーファイルにさらにロックをかけるための 「合言葉」のような役割です。
セキュリティをより高めたい場合は、推測しにくい強力なパスフレーズを設定してください。パスフレーズは設定しなくても作成できますが、セキュリティ向上や秘密鍵を紛失してしまった場合の対策として設定しておくのがおすすめです。
●5.公開鍵をサーバやサービスに登録
作成された「公開キー」を接続したいサーバやサービスに登録します。
サーバの場合は、まず「公開キー」のファイルをテキストエディタなどを使用してコピーします。続いて、接続先サーバのホームディレクトリ内にあるフォルダー(必要に応じて新規作成)に、コピーした内容を貼り付けることで、SSHキーを使用した接続が可能となります。
サービスに登録する場合も、公開キーをコピーして、サービスの設定画面などから登録を行いますが、それぞれのサービスによって設定方法が異なるため、注意しましょう。
●6.接続テスト
最後に、実際にSSHキーを使って接続できるかテストしましょう。初回接続時は「このサーバに初めてアクセスします。信頼してよいですか?」という警告(ホスト認証)が出ることがありますが、正しい接続先であれば「yes」と入力して進めます。
パスフレーズを設定している場合には、その入力も求められます。正しいパスフレーズで認証できるか確認しましょう。
エラーが出てしまった場合は、「公開キーの登録ミス」「ファイル権限の設定(.sshやauthorized_keysの許可)」などを再確認します。ミスがあった場合には適宜修正を行い、再度接続テストを行いましょう。
WindowsとMacでのSSHキー作成の違いとは?
SSHキーの作成や管理は、WindowsとMacの環境によって使われるツールや操作手順、管理方法が少し異なります。ここでは、主な違いを4つのポイントに分けて解説していきます。
- SSHキー作成時に使う主なツール・環境
- SSHキー保存場所の違い
- ファイルのアクセス権管理
- 追加ツールやオプション
●SSHキー作成時に使う主なツール・環境
Windowsでは、標準で「PowerShell」や「コマンドプロンプト」が利用できます。 10や11には「OpenSSHクライアント」が標準搭載されているため、「ssh-keygen」のコマンドで直接SSHキーを作成できます。また、従来からある「PuTTY(パティ)」や「PuTTYgen」のような専用ツールを使う場合もあります。
一方Macでは、「ターミナル」アプリが標準装備されており、Linuxと同様にコマンドの「ssh-keygen」が最初から使えます。追加のソフトを準備する必要がなく、シンプルに作業できるのが大きな特徴です。
●SSHキー保存場所の違い
SSHキーは作成時に「どこに保存するか」を選びますが、この点もOSで少し異なります。
Windowsの場合、「C:\Users\ユーザー名\.ssh\」が標準の保存先です。一方Macの場合は、ホームディレクトリのすぐ下に「.ssh」ディレクトリを作成し、その中に秘密鍵を保存します。
原則としてどちらも「ユーザーごとの隠しフォルダー」に配置するのが基本です。もし、複数のSSHキーを作成する場合には、オプションの「-f」や「-C」などを使用して、管理しやすいよう工夫しましょう。
●ファイルのアクセス権管理
セキュリティを高めるには「秘密キーファイルのアクセス許可(パーミッション)」管理が重要です。
Windows では、厳密なパーミッション設定が Mac や Linux ほど自動的ではありません。保存先が自分のユーザーフォルダー内であれば、他のユーザーからアクセスされにくい仕組みになっていますが、共有 PC などの場合は、社内の他のユーザーが読み取れないように注意してください。
Windowsで権限設定を厳しくしたい場合、「プロパティ」から手動で編集できます。
一方Mac では、パーミッションの許可が甘いと SSH クライアントが「安全でない」と判断して接続を拒否する場合があります。そのため、ターミナルでSSHキーを作成した際に、自分だけが使える(書き換えできる)設定に変更するのが必須となります。
●追加ツールやオプション
Windowsでは必要に応じて「PuTTY」や「PuTTYgen」などの追加ツールを使うことがあります。これは古いWindowsやOpenSSHが標準搭載されていない場合、または特殊な形式(PPKファイルなど)の秘密鍵を使いたい場合に便利です。また、SSH接続のテストやキーの変換などにも使用可能となっています。
一方Macでは、追加ツールはほぼ不要で、標準のターミナルとOpenSSHだけで作成することができます。 使用可能なオプションはWindowsと変わりありませんが、セキュリティの要件から、パーミッション設定が必須となることが多くなっています。
SSHキー運用をより安全にするための8つの注意点
安全にSSHキーを利用し続けるには、日々の管理や運用に気をつけることが大切です。ここでは、セキュリティを高めるための具体的な8つのポイントを紹介します。
- 秘密鍵は大切に保管
- パスフレーズを設定
- 鍵ファイルのアクセス権を制限
- 鍵のバックアップを取る
- 不要になった鍵の削除
- 複数端末では別々の鍵を使用
- 定期的な更新
- 追加の安全対策も考える
●1.秘密鍵は大切に保管
秘密鍵が漏洩してしまうと、サーバ攻撃や不正アクセスの危険性が高まります。誰かに渡したり、ネット上にアップロードしたりすることは絶対に避けてください。
また、パスワード管理ソフトなどを使用することで、より安全性を高めることができます。
●2.パスフレーズを設定
秘密鍵に「パスフレーズ(追加のパスワード)」を設定すると、万が一秘密キーが盗まれても、第三者が簡単に悪用できなくなるためおすすめです。
パスフレーズには、英数字・記号を組み合わせ、文字数を増やしたり、大文字と小文字を混ぜたりした、できるだけ複雑なものがおすすめです。他のシステムとの共通のパスワードやフレーズ、単語の繰り返しといったパターンは避け、推測が難しいオリジナルのものを選びましょう。
複雑なパスフレーズを採用することで、ブルートフォースのような、パスワードの総当たり攻撃にも効果を発揮します。
●3.鍵ファイルのアクセス権を制限
鍵ファイルのアクセス権を制限することで、SSHキーのセキュリティをより高めることができます。SSHキー作成で設定できるアクセス権の特徴は、下記の通りです。
許可 | 特徴 | 主な用途・説明 |
---|---|---|
700 | 所有者(ユーザー)専用読み書きと実行の全権限がある | ディレクトリなどに設定し、本人のみ完全な操作が可能になる |
600 | 所有者だけが読み書き可能で、他のユーザーはアクセス不可 | 秘密キーファイルの権限としてよく使われる |
644 | 全員は読み書き可能、その他ユーザーは読み取りのみ可能 | 公開鍵など、内容が知られても問題ないファイルに設定されることが多い |
400 | 所有者だけが読み取り可能で、書き込みや実行は不可 | アクセス権の中でも厳しい制限で、特に慎重な管理が必要な場合に利用される |
755 | 所有者は読み書き実行が可能、その他は読み取りと実行が可能 | 一般的なプログラムファイル、ディレクトリの公開設定で用いられる |
この表のように、パーミッションは「数字」によってファイルディレクトリやアクセス権限を詳細に設定できます。 特にSSH運用時には、秘密鍵ファイルは600、.sshディレクトリは700、公開鍵は644など、それぞれに適切なパーミッションを設定することで高いセキュリティを保つことができます。
●4.鍵のバックアップを取る
パソコンの故障や事故、不測の事故が起きてもサーバやサービスへアクセスできるよう、秘密キーのバックアップを作成しておくことが大切です。 バックアップ先は、暗号化したUSBメモリやパスワード保護した外付けメディア、セキュリティの高いパスワード管理のツールなどが推奨されます。
なお、バックアップは必要な場所だけに保管し、第三者に接触するリスクがないよう厳重に管理しましょう。
●5.不要になった鍵の削除
使われなくなったSSHキーや以前の端末で利用していた公開キーは、必ずサーバやサービスから随時削除しましょう。 古いキーが放置されていると、流出や悪用のリスクが残ってしまいます。特にパソコンの買い替えの時は、リサイクルなどで第三者の手に秘密鍵のデータが渡ってしまった事例もあるため、注意が必要です。
GitHub や各種サーバの「SSH キー管理ページ」から定期的に登録リストを見直し、自分が現在使用しているもの以外はこまめに削除することで、リスクを最小限に抑えられます。
●6.複数端末では別々の鍵を使用
複数の端末でSSH接続する場合は、それぞれの端末で個別のSSHキーを生成し、サーバやサービスに登録しましょう。その際、キーごとにコメントやファイル名を工夫すると、どの端末用か一目でわかるようになり、管理しやすくなるためおすすめです。
複数の端末で同じ鍵を使用した場合、1つの鍵の流出で複数の端末が危険にさらされます。各端末ごとに個別に設定しておくことで、被害の拡大を防ぐ効果が期待できます。
●7.定期的な更新
同じSSHキーを使い続けると、流出した際のリスクや解析される危険性が高まっていきます。サーバやサービスの利用規模にもよりますが、原則1〜2年ごとに新しいキーペアを作成し、古いキーは削除するような「定期的なキーの更新」が推奨されています。
また、不審なアクセスが確認された場合も、すぐに新しいSSHキーへ切り替え、公開キーを変更するようにしましょう。
●8.追加の安全対策も考える
より強固なセキュリティを求める場合は、多要素認証(MFA)の併用や、サーバ側認証のアクセス元IP制限、アクセスログ監視などを追加の対策として積極的に取り入れましょう。
SSHキーの用途や業務規模に応じて、必要な対策は柔軟にアップデートすることが大切です。
SSHキーについてよくある質問
SSHキーについてよくある質問をまとめました。SSHキーの作成や運用の参考にしてみてください。
- 秘密鍵を紛失した場合の対処法は?
- パスフレーズを忘れてしまった場合は?
- GitHubで使用する手順は?
●秘密鍵を紛失した場合の対処法は?
秘密鍵を紛失した場合は、即座にキーペアを削除し、第三者からのアクセスを防ぎましょう。誤って削除してしまった場合であれば、バックアップから復元可能か試してみるのもおすすめです。
キーペアを削除した後は、新しいSSHキーを再度作成・登録する必要があります。管理者に連絡し、対応してもらうようにしましょう。
●パスフレーズを忘れてしまった場合は?
パスフレーズを忘れてしまった場合も、基本的には新しいSSHキーを作成し直すのが最も確実な方法です。パスフレーズは秘密鍵を暗号化するために使用されており、忘れてしまうと秘密鍵自体が使用できなくなります。
パスフレーズなしでもSSHキーを作成することは可能ですが、セキュリティ面では推奨されません。パスワード管理ツールなどにパスフレーズを保存するか、忘れにくい方法で記録するのがおすすめです。
●GitHubで使用する手順は?
GitHubでSSHキーを使うには、SSHキーを作成してからGitHubにログインし、「設定」→「SSHとGPGキー」→「新しいSSHキー」を選択し、保存しましょう。
保存する際には、タイトル欄に識別しやすい名前(例:「会社PC」)を入力し、キー欄に公開キーを貼り付けて保存します。接続テストを行い、正常に動作するか確認しましょう。
SSHキーを適切に運用し、セキュリティの高い接続を実現しよう!
SSHキーは公開鍵と秘密鍵のペアで構成され、パスワード認証よりも高いセキュリティとアクセス性を提供します。自動化への対応やファイルの編集の効率化などのメリットがある半面、鍵の管理方法に注意が必要です。
実際の作成では、6つのステップに沿って進んでいくことで、安全にSSHキーを利用できます。 WindowsやMacなど、使用OSにより一部作成方法やツールが異なる場合があるため、自身の環境に合わせて作成していきましょう。
秘密鍵の厳重な保管やパスフレーズ設定、適切なアクセス権限管理、定期的な更新などの注意点を守りながら、セキュリティの高い接続を実現していきましょう。
システム開発の最適な発注先をスムーズに見つける方法
システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:27,000件(2025年9月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
システム開発会社選びはプロにお任せ完全無料で全国7000社以上からご提案
■システム開発に関連した記事