A photograph of the Github mascot in front of the Github webpage.

SSHキーをGithubにリンクすることは、アカウントを保護する際の重要なステップの一つです。公開鍵暗号の力を利用して Git リポジトリを保護することができます。この記事では、SSH 鍵とは何か、そしてそれを使って Github アカウントを強化する方法を紹介します。

:Git初心者ですか?まずは入門ガイドから学びましょう。

SSHキーとは?

gist では、SSH 鍵とはリモートサーバーに保存する公開鍵のことです。これは認証プロキシとして機能し、ユーザー名やパスワードを入力せずにマシンに接続したり、やり取りしたりすることができます。

A terminal showing an example SSH public key.

その仕組みは、SSHでマシンに接続するたびに、ローカルコンピュータがあなたのSSH秘密鍵で署名されたメッセージを送信します。するとリモートマシンは、あなたの公開SSH鍵を使ってメッセージの信憑性を確認し、あなたをログインさせる。

Githubは、サーバー内であなたの身元を確認するために同じアプローチを使用しています。Githubは、あなたがリポジトリをアップロードしたり変更したりするたびに、あなたの公開鍵を使用します。これにより、コミットをプッシュする際にGithubの認証情報が公開されることはありません。

知っておいて損はありません: LinuxにGNU Kleopatraをインストールすることで、公開鍵暗号と、それがどのようにあなたのオンラインIDを保護できるかについて、より詳しく知ることができます。

Github用のSSHキーを生成する

始めるには、あなたのディストロのアプリケーションランチャーを使って新しいターミナルセッションを開きます。

マシンにOpenSSHがインストールされ、SSHエージェントデーモンが実行されていることを確認してください:

sudo apt install ssheval `ssh-agent -s`.

以下のコマンドを実行して、SSH鍵生成ウィザードを開始します:

ssh-keygen -ted25519-C "[email protected]"

ssh-keygen-t-ed25519-C""ウィザードは、鍵にカスタムのSSH鍵ファイル名を使用するかどうかを尋ねてきます。Enterキーを押して、デフォルトの名前と場所を受け入れます。

A terminal showing the file location prompt for a new SSH key.

新しいSSH鍵のパスワードを入力する。これはローカルマシンが Github アカウントに接続する際のパスフレーズとなります。

A terminal showing the password prompt for a new SSH key.

注:パスワードなしのSSHキーを作成したい場合は、パスワードプロンプトを空白のままにすることもできます。

新しく生成したSSHキーを、現在実行中のSSHエージェントに追加します:

ssh-add ~/.ssh/id_ed25519

知っておくと良いこと: Githubに慣れていない方は、Githubリポジトリに追加すべきベストアプリをいくつか見つけてください。

GithubにSSHキーを追加する

新しいSSHキーを立ち上げて実行することで、ローカルマシンをGithubアカウントにリンクできるようになります。手始めに、以下のコマンドを実行してSSH公開鍵を印刷します:

cat ~/.ssh/id_ed25519.pub

SSH公開鍵をハイライトして右クリックし、"コピー "を選択します。

A terminal showing the Copy option inside its context menu prompt.

新しいブラウザセッションを開き、Githubのホームページに移動します。

ページ右上のプロフィールアイコンをクリックします。

A screenshot of the default Github homepage.

ドロップダウンリストから "設定 "をクリックします。

A screenshot highlighting the Settings option in the Github profile menu.

設定ページの左サイドバーにある "SSHとGPGキー "を選択します。

A screenshot highlighting the SSH and GPG keys option in the Github settings menu.

SSH Keys "ヘッダーの横にある "New SSH Key "ボタンをクリックします。

A screenshot highlighting the New SSH key button inside the SSH and GPG keys page.

Title "テキストボックスを選択し、鍵の名前を入力します。

Key "テキストボックスをクリックし、Ctrl+Vキーを押してSSHキーを貼り付けます。

Add SSH Key "をクリックして、新しい設定をコミットします。

Secure Github Access Ssh Key 09 Add Ssh Key Button

新しいターミナル・セッションを開き、以下のコマンドを実行する:

yes "と入力し、Enterキーを押します。

A terminal highlighting the prompt for trusting the SSH fingerprint.

そうすることで、Githubの受信サーバーへの新しいSSHセッションが開始されます。鍵が正しく動作していれば、SSH接続を確認する短いメッセージが表示されます。

A terminal highlighting the short acknowledgement message from Github.

SSHキーの管理

たいていのユーザーには SSH 鍵がひとつあれば十分ですが、複数のマシンにまたがる Git リポジトリを同期させる必要がある場合もあるでしょう。そのためには、マシン固有の SSH 鍵をインポートする必要があります。

Githubにリンクしたいコンピューターで、新しいターミナルセッションを開きます。

OpenSSHデーモンがシステムにインストールされ、実行されていることを確認する:

sudo apt install ssheval `ssh-agent -s`.

以下のコマンドを実行して、新しいマシンのSSHキーを作成する:

ssh-keygen -ted25519-f ~/.ssh/id-ed25519-pc2 -C "[email protected]"

新しい SSH 鍵に安全なパスフレーズを入力し、Enter キーを押します。

新しい代替鍵をSSHエージェントに追加します:

ssh-add ~/.ssh/id-ed25519-pc2

SSH 公開鍵の内容を印刷し、システムのクリップボードにコピーします:

cat ~/.ssh/id-ed-25519-pc2

Githubアカウントの "SSH and GPG Keys "ページに戻る。

もう一度 "New SSH Key "ボタンをクリックします。

新しい鍵にユニークなラベルを付け、"Key" テキストボックスの下にクリップボードの内容を貼り付けます。

A screenshot showing a new alternative key in Github.

Add SSH Key "をクリックして、新しい設定を適用する。

新しいマシンがあなたのセキュアキーを使ってGithubに接続するかどうか、SSHでログインしてテストしてみましょう:

既存のSSHキーの変更

新しく生成した鍵をGithubに送信する以外に、すでにマシン内にある既存のSSH鍵を変更することもできます。これは、Linuxでパスワード不要のログインとしてすでにSSHキーを使っている場合に便利だ。

既存のキーを変更するには、マシンの「.ssh」ディレクトリに移動する:

cd ~/.ssh

ssh-keygenに -p-o-fフラグを付けて、SSH鍵とともに実行する。これにより、既存の秘密鍵のパスワードを変更できるようになります:

ssh-keygen -p -o -f./id-ed25519

注意:これらのフラグを使って、通常の SSH 鍵をパスワードなしのものに変換することもできます。

また、-cフラグを使用することで、公開鍵に埋め込まれた電子メールアドレスを変更することもできます:

ssh-keygen -c -C "[email protected]" -f./id-ed25519

新しく更新した鍵でSSHエージェントをリロードします:

ssh-add ~/.ssh/id-ed25519

Githubプロファイルから対応するSSH公開鍵を置き換えます。

A screenshot showing the newly modified SSH key in Github.

GithubからSSHキーを削除する

新しいターミナル・セッションを開き、SSHエージェント・デーモンを起動します:

eval `ssh-agent -s`とします。

以下のコマンドを実行して、マシン内のSSH秘密鍵を削除する:

ssh-add -d ~/.ssh/id-ed25519

Githubアカウントの "SSH and GPG Keys "カテゴリーに戻る。

このページのSSH鍵のリストをスクロールし、削除したい鍵の「Delete」をクリックする。

A screenshot highlighting the Delete button for the newly modified SSH key.

"I understand, delete this SSH key "をクリックする。

A screenshot highlighting the final confirmation prompt for deleting an SSH key.

GithubのサーバーにSSHセッションを開始し、古いSSHキーが無効になったことを確認します:

SSH 鍵をリンクして Github アカウントを保護することは、公開鍵暗号と暗号化の仕組みを理解するための第一歩にすぎません。Rcloneを使用して暗号化されたクラウドバックアップを作成することで、データアットレストの暗号化についてさらに学びましょう。

一方、Gitフックを使った自動リポジトリ管理についても学ぶことができる。

画像クレジット:Roman Synkevych via Unsplash.すべての改変とスクリーンショットはRamces Redによる。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。