11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SSHキーを作成してGitHubに登録する

Last updated at Posted at 2019-02-28

SSHキーを作成してGitHubに登録する

【ぜんぶポータブル】ポータル

最終更新:2023年1月20日 PowerShellコマンド追加 sshのconfigのパス解釈は保留

このドキュメントは、

自分のSSHキーをGitHubに登録してください。

って言われてもさっぱりわからねぇよ、という方向けです。

このドキュメントでは、SSHキーペアの作成からコマンド入力によるGitHubプライベートリポジトリのクローンまでを、ステップバイステップで説明します。

「SSHってなんだ!?」という方は、様々な良いページがあると思いますけれど、作業を進めるだけなら特に気にしなくてもOKです。

前準備

  • GitHubに適当なプライベートリポジトリを作成して初期化してください。
    **「…?」**という方は、
    GitHubプライベートリポジトリの作成手順
    に従って準備してください。
  • 【ぜんぶポータブル】環境の方は、ポータブル環境フォルダのConsole_○○○を開くか、VSCode上の統合ターミナルから操作してください。 注:現在公開準備中です
  • それ以外の環境の方は、各プラットフォーム版Gitをインストールし、Windowsはコマンドプロンプト(Windowsキー+Rキー、「名前」欄にcmdと入力してEnterキー)、Macはターミナル(Finderを開いて「移動」メニューから「ユーティリティ」→「ターミナル」)、Linux系は何らかのコマンドコンソール(例えば「ラズベリーボタン」→「アクセサリ」→「LXTerminal」)を開いておいてください。

SSH系の下準備

以下のコマンドを叩いてください。

コマンド(全プラットフォーム共通)
ssh -T git@github.com

以下の様なメッセージが出てきたら、明確にyesと入力してEnterキーを押してください。

出力結果
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

最終的にはエラーが出て終わりですが、下準備としてはOKです。

出力結果
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
git@github.com: Permission denied (publickey).

自動的に.sshフォルダが作成されていると思いますので、そこに移動しておきます。

コマンド(全プラットフォーム共通)
cd .ssh

No such file or directoryと怒られたら(Macのポータブル環境とか)、
mkdir .sshを叩いてからcd .sshしてください。

SSHキーの作成

SSHで使用する公開鍵と秘密鍵のキーペアを作成します。
このうち秘密鍵(生成されたキーファイルのうち.pubの付いていない方)は大変大事なファイルですので流出しないように注意してください。
既に持っている方も、ポータブル環境で利用する方はデバイス紛失のリスクに備え、専用キーペアの使用を強くお勧めします。

下記のコマンド中、-C右の" "の中身は、自分の電子メールアドレスを入力してください。
また、コマンド一番右側rsa_GitHubの部分は、好きな名前で結構です。
ただし、空白を含んだり全角文字を含んだりすると大抵痛い目にあいますので、ファイル名は必ず半角文字&有効な記号で指定してください。

コマンド(全プラットフォーム共通)
ssh-keygen -t rsa -b 4096 -C "myname@my.email.ad.jp" -f rsa_GitHub

すると、以下の様なメッセージが出ますので、このキーに設定するパスフレーズ(いわゆるパスワードです)を入力してください。
ちなみに、画面上に入力した文字は表示されませんがちゃんと入力されています。

出力結果
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):

入力してEnterキーを押すと、もう一度聞かれますので、同じパスフレーズを入力します。

出力結果
Enter same passphrase again:

間違えたら再入力を要求されますので、何とかしてください。

出力結果
Your identification has been saved in rsa_GitHub.
Your public key has been saved in rsa_GitHub.
The key fingerprint is:
SHA256:~~~~~~ myname@my.email.ad.jp
The key's randomart image is:
+---[RSA 4096]----+
|  ステキなアート  |
+----[SHA256]-----+

こんな感じで表示されればOKです。

この公開鍵ファイルの中身をあとでGitHubのサイトへ貼り付けますので、クリップボードにコピーしておきます。

Windows:コマンドプロンプト
clip < rsa_GitHub.pub
Windows:PowerShell
Get-Content rsa_GitHub.pub | Set-Clipboard
Mac:ターミナル
pbcopy < rsa_GitHub.pub
Linux:シェル
xsel -bi < rsa_GitHub.pub

(Linuxのxselで怒られた方はsudo apt install xselとかなんとかしてください)

SSH公開鍵をGitHubに登録する

GitHubにアクセスします。
2019-02-21-15-04-09.png
一番右上から2番目Sign inをクリックします。
2019-02-21-15-43-16.png
ユーザ名とパスワードを入力してSign inをクリックします。
image.png
画面右上のGravatarをクリックしてメニューを開き、Settingsを選択します。
2019-02-18-13-58-28.png
サイドバーのSSH and GPG Keysを選択して、右上の方のNew SSH keyボタンを押して、
2019-02-18-14-02-23.png
Titleには、複数のキーを登録した時に自分で区別が付けられるような名前を入力し、Key欄をクリックして選択してからCtrl+V(MacはCommand+V)で貼り付け、Add SSH keyボタンを押します。
2019-02-18-14-04-25.png
パスワードを聞かれたら(鍵生成時に入力したパスフレーズではなく)GitHubアカウントのパスワードを入力してConfirm passwordボタンを押して完了です。
2019-02-18-14-07-12.png
これでGitHubにSSH接続するためのキーを登録することが出来ました。1

SSHのアクセスチェック

コマンド(全プラットフォーム共通)
ssh -T git@github.com -i rsa_GitHub

もしも以下の様なメッセージが出たら、明確にyesと答えてEnterキーです。
下準備したので大抵出ないはず。

出力結果
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
(Enterキーではなく、「yes」としっかり入力する)
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.

以下の様にパスフレーズを要求されますので、(鍵生成時に入力したものを)入力してEnterキーです。例によって入力しても画面には表示されません。

出力結果
Enter passphrase for key 'rsa_GitHub':

間違って居たら再度聞かれます。正しいパスフレーズを入力すると、

出力結果
Hi jtana! You've successfully authenticated, but GitHub does not provide shell access.

みたいに、You've successfully authenticatedって言われたら、ここまでの手順はOKです。

Gitの設定をする

GitHubでは、コミット(ファイルの登録)にサインオフ(署名)することが推奨されています。
そのためのユーザ名とパスワードを設定します。
もちろん" "の中身は自分のものに変更して入力します。
また、Git内部でも前の手順で試したSSHコマンドを使うようにします。2

コマンド(全プラットフォーム共通)
git config --global user.name "Taro Yamada"

git config --global user.email "myname@my.email.ad.jp"

git config --global core.sshCommand "ssh -T -i ~/.ssh/rsa_GitHub"

エラーも何も表示されなければ成功です。
ホームディレクトリに.gitconfigファイルが自動的に作成されます。
パスの指定はWindowsでもこれで合ってます。

試しにクローンする

とりあえずホームディレクトリに戻ります。もしくは、お好みのフォルダにcdしてください。

コマンド(全プラットフォーム共通)
cd ..

では実際にGitHubプライベートリポジトリにあるファイルを持ってきましょう。
image.png
GitHubプライベートリポジトリの作成手順最終盤の手順を参考に、
Clone with SSHに表示されたアドレスを、
「クリップボードに左矢印」ボタンを押してクリップボードにコピーします。

以下のコマンド入力の末尾、git clone 以降は、Ctrl+V(MacはCommand+V)で貼り付けます。
下の通り打っても僕のプライベートリポジトリですのでアクセスできません…

コマンド(全プラットフォーム共通)
git clone git@github.com:jtana/sandbox.git #最後の部分はペーストね

パスフレーズを聞かれますので入力します。

出力結果
Cloning into 'sandbox'...
Enter passphrase for key '~~~~/.ssh/rsa_GitHub':

done.``done.言われたらOKです。

出力結果
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 13 (delta 2), reused 10 (delta 2), pack-reused 0
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (2/2), done.

これで、ホームディレクトリにリポジトリと同じ名前のフォルダが作成され、中にファイルが入っているはずです。実際にファイルを持ってこれたかどうか、WindowsエクスプローラーなりMacのFinderなりLinuxのファイルマネージャーなりで確認し、不要であればこのフォルダを削除してください。

以上です、お疲れ様でした。

  1. あ、もちろん、公開鍵だけあっても仕方がないとは言え気持ち悪いんで、このキーペアは速攻破棄しました。

  2. 複雑な使い方をする方は.gitconfigではなく~/.ssh/configで設定する方がいいかもしれません。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?