Close

Git SSH キーとは?

SSH キーは SSH (セキュア シェル) ネットワーク プロトコルのアクセス クレデンシャルです。この認証されて暗号化されたセキュア ネットワーク プロトコルは、セキュリティで保護されていないオープン ネットワーク上のマシン間のリモート通信に使用されます。SSH は、リモート ファイル転送、ネットワーク管理、およびオペレーティング システムへのリモート アクセスに使用されます。SSH という略語は、SSH プロトコルとのやり取りに使用される一連のツールを表すためにも使用されます。

SSH は鍵のペアを使用して、リモート パーティ間でセキュアなハンドシェイクを開始します。鍵ペアには公開鍵と秘密鍵が含まれています。どちらも鍵と呼ばれているため、秘密と公開という名前は混乱を招くかもしれません。公開鍵は「錠」、秘密鍵は「鍵」と考えると理解しやすいです。あなたはデータを暗号化、つまり「施錠」するために、公開の「錠」をリモート パーティに渡します。このデータは、あなたが安全な場所に保持している「秘密」鍵で開きます。


SSH キーの作成方法


SSH キーは公開鍵暗号化アルゴリズムによって生成されます (最も一般的なのは RSA または DSA)。非常におおまかに言うと、SSH キーは 2 つの素数と乱数シード変数を取る数式で公開鍵と秘密鍵を出力することで生成されます。これは一方向の式であり、公開鍵を秘密鍵から派生させることはできるが、秘密鍵を公開鍵から派生させることはできないことが保証されています。

SSH キーはキー生成ツールを使用して作成されます。SSH コマンド ライン ツール スイートには keygen ツールが含まれています。ほとんどの Git ホスティング プロバイダーは SSH キーの作成方法に関するガイドを提供しています。

Mac と Linux で SSH キーを生成する

OsX と Linux のオペレーティング システムにはどちらにも、SSH スイートが既定でインストールされている包括的な最新のターミナル アプリケーションがあります。SSH キーを作成するプロセスはどちらも同じです。

1. 次のコマンドを実行して、キーの作成を開始します

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Git のロゴ
関連資料

Git チートシート

Bitbucket ロゴ
ソリューションを見る

Bitbucket Cloud での Git の使用方法についてのチュートリアルです。

このコマンドは、メールをラベルとして使用して新しい SSH キーを作成します

2. キーを保存するファイルの場所を入力するよう求められます。
ファイルの場所を指定するか、Enter を押して既定のファイルの場所を受け入れます。

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

3. 次のプロンプトでは、セキュアなパスフレーズの入力を求められます。パスフレーズは SSH のセキュリティをさらに強化します。SSH キーを使用するときは必ずパスフレーズが求められます。秘密鍵が保存されているコンピューターにアクセスできるユーザーは、その鍵を使用するすべてのシステムにもアクセスできてしまいます。鍵にパスフレーズを追加すると、このような状況を回避できます。

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

この時点で、以前指定したファイル パスに新しい SSH キーが生成されます。

4. 新しい SSH キーを ssh-agent に追加します

ssh-agent も SSH ツールスイートに含まれています。ssh-agent は秘密鍵を保持します。キーチェーンのようなものだと考えてください。秘密鍵を保持するだけでなく、秘密鍵を使用して SSH リクエストに署名するリクエストを仲介し、秘密鍵が安全でない方法で渡されないようにします。

新しい SSH キーを ssh-agent に追加する前に、次のコマンドを実行して ssh-agent が実行されていることを確認します。

$ eval "$(ssh-agent -s)"
> Agent pid 59566

ssh-agent が実行されると、次のコマンドによって新しい SSH キーがローカル SSH エージェントに追加されます。

ssh-add -K /Users/you/.ssh/id_rsa

これで新しい SSH キーが登録され、使用できる状態になりました。

Windows で SSH キーを生成する


Windows 環境には、標準の UNIX シェルが既定で備わっていません。完全な keygen エクスペリエンスを得るには、外部のシェル プログラムをインストールする必要があります。最も簡単な選択肢は Git Bash を利用することです。Git Bash をインストールすると、Linux や Mac と同じ手順を Git Bash シェル内で実行できます。

Windows Linux サブシステム


最新の Windows 環境には、Windows Linux サブシステムが提供されています。Windows Linux サブシステムは、従来の Windows 環境内に完全な Linux シェルを提供します。Linux サブシステムが使用可能な場合は、以前に Linux と Mac について説明したのと同じ手順を Windows Linux サブシステムで実行できます。

要約


SSH キーは、セキュアな接続の認証に使用されます。このガイドに従うと、SSH キーを作成して使用できるようになります。Git では、リモート リポジトリにプッシュまたはプルするときに、従来のパスワード認証の代わりに SSH キーを使用できます。Bitbucket のような最新のホスト型 Git ソリューションでは SSH キー認証がサポートされています。


この記事を共有する
次のトピック

おすすめコンテンツ

次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。

一面のツールを使ってコラボレーションしている人たち

Bitbucket ブログ

DevOps のイラスト

DevOps ラーニング パス

Demo Den アトラシアン・エキスパートによる機能デモ

Bitbucket Cloud が、Atlassian Open DevOps とどのように連携するか

DevOps ニュースレター購読

Thank you for signing up