GitHubにSSHキーを追加する

SSHキーって何?

SSHキーとは、インターネット越しにリモートコンピュータへ安全にアクセスするためにSSH(Secure Shell)プロトコルで使用される認証情報です。通常、この認証はコマンドライン環境で行われます。
SSHはリモートファイルの転送、ネットワーク管理、システムオペレーティングへのリモートアクセスに使用されます。

公開鍵と非公開鍵

SSHプロトコルでは非対称暗号化という暗号化技術を使用します。この言葉は難しそうで見知らぬものかもしれませんが、全くそんなことはありません。

非対称暗号化は一対の鍵を使うシステムで、一つは公開鍵で、もう一つは非公開鍵です。公開鍵は誰とでも共有できます。

主な目的はデータを暗号化して、メッセージをシークレットコードや暗号文に変換することです。

非公開鍵は自分だけが持っておくべきものです。公開鍵で暗号化されたデータを復号するのに使います。これがなければ、暗号化された情報を解読することは不可能です。

この方法により、あなたとサーバーは情報を安全に伝送するための安全な通信チャンネルを保つことができます。

SSHキーを生成する

ターミナルを開き、次のコマンドを実行してください:

$ ssh-keygen -t ed25519 -C "email_github_de_preferencia"

このコマンドの各パートが何を意味しているかを理解しましょう:

  • ssh-keygen: SSHキーペアを作成するために使用されるコマンドラインツールです。ssh-keygen help でオプションを確認できます。

  • -t ed25519: -t オプションはキーペアのデジタル署名を作成するために使用されるアルゴリズムを示します。システムがサポートしている場合、ed25519 はSSHキーペアを作成するために使用できる最も良いアルゴリズムです。

  • -C “email_github”: -C オプションは公開鍵の最後にカスタムコメントを提供するために使用され、通常はキーペアを作成した人のメールアドレスやIDです。

コマンドを入力したあと、キーを保存するファイルを入力する必要があります。デフォルトではホームディレクトリの隠しフォルダ「.ssh」にありますが、変更も可能です。

Enter file in which to save the key (/home/usuario/.ssh/id_ed25519): /home/usuario/.ssh/nome_arquivo

次に、キーペアにパスワードを追加するように求められます。これは、万が一あなたのデバイスが危険にさらされた場合に追加のセキュリティ層を提供します。パスワードを設定することは必須ではありませんが、常に推奨されます。

Enter passphrase (empty for no passphrase):

以下はプロセス全体です:

$ ssh-keygen -t ed25519 -C "a.silva@mailfence.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/zero/.ssh/id_ed25519): /home/zero/.ssh/github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zero/.ssh/github
Your public key has been saved in /home/zero/.ssh/github.pub
The key fingerprint is:
SHA256:dRBEcSeZCIS42Y4xtvIxSFKGNooFqwUm2ta39eho2z0 a.silva@mailfence.com
The key's randomart image is:
+--[ED25519 256]--+
|++   . oo+*+oo.  |
|=*+.. .   .ooo   |
|max .+. . . .    |
|=o. *..o + .     |
|.o o *. S .      |
|  o = .o         |
|   o oo .        |
|    .. o .E      |
|      . . ..     |
+----[SHA256]-----+

実行結果として、選択したディレクトリ(通常は ~/.ssh)に二つのファイルが生成されます:公開鍵ファイルには .pub 拡張子が付き、非公開鍵ファイルは 拡張子なし です。

SSHチェーンをSSHエージェントに追加する

ssh-agent はバックグラウンドで実行されるプログラムで、個人の鍵とフレーズを安全に保持し、使用のために準備しておくものです。

そのため、新しい非公開鍵をこのエージェントに追加します。以下のようにします:

ssh-agentがバックグラウンドで実行中か確認してください。

eval `ssh-agent`
# Agent pid 10199

これに似たメッセージが表示されれば、ssh-agentが特定のプロセスID(PID)以下で実行されていることを意味します。

SSHの非公開鍵(拡張子なしのもの)をssh-agentに追加してください。

$ ssh-add ~/.ssh/nome_da_chave

キーの新しい名前をつけなかった場合、おそらく名前は id_ed25519 でしょう。

SSHキーをGitHubアカウントに追加する

以下の手順に従ってください:

SSH公開鍵 をクリップボードにコピーしてください。テキストエディタでファイルを開いてコピーすることも、ターミナルで内容を表示することもできます。

./ssh$ cat nome_da_chave.pub

GitHubでは以下の手順で設定します:

Settings -> SSH and GPG keys -> New SSH key

SSHキーには、そのキーを使用するデバイスの名前をつけて、キーをkeyフィールドに貼り付け、Add SSH key をクリックして完了します。

Image description

最後に、何かしらのリポジトリへの接続をテストしてみてください。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/xxzeroxx/adicionando-uma-chave-ssh-ao-github-2mp9