Gitコマンド入門::Gitカスタマイズ機能(config,SSH keys)第七十八回

5 min read読了の目安(約5100字

みなさんこんにちは! 前回は、最後、ヌヌヌ・・・(^▽^;) で終わってしまいましたけど、なんだと思いますか? というかタイトルに答えは書いてありますね。そうそう、GitHubでは、HTTPS以外に、SSH接続もできるんですよね~

今回も、こちらのドキュメントの続きですが、今回は、GitHubのSSH Keyの設定、更に寄り道していま~す!

https://git-scm.com/book/ja/v2/Git-のさまざまなツール-作業内容への署名#r_signing
7.4 Git のさまざまなツール - 作業内容への署名

GitHub に SSH で接続する/git本家のドキュメント

https://docs.github.com/ja/github/authenticating-to-github/connecting-to-github-with-ssh

本家サイトのドキュメント冒頭!
SSH について
SSH プロトコルを利用すれば、リモートのサーバーやサービスに接続し、認証を受けられます。 SSH キーを使用すると、アクセスのたびにユーザ名と個人アクセストークンを入力することなく GitHub に接続できます。

前回の記事はこちらから!

https://zenn.dev/shiozumi/articles/08f1488240e350

git本家のドキュメントメニューはこちら!

https://git-scm.com/book/ja/v2

GPGの設定時、ちらちらっと気になっていました!

冒頭でも、Git本家サイトの文章を引用しましたけど、自分の公開キー、SSH Key を作成して、GitHubに登録すると、リポジトリのpush時に、パスワード入力をせずに、アップロード可能になるそうですから、この緑のボタンを押さずには、当然いられませんよね~(^▽^;)

本家サイトのドキュメントも分かりやすい!

https://docs.github.com/ja/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

私の環境では、Linux を選択! その他 Mac,Windows も、しっかり用意してありますね!

これじゃ~ 私のサイトは、いらないじゃないですか!!! おこだよ!(爆笑)

ls -al ~/.ssh で、既存のSSHキーの存在確認!

$ ls -al ~/.ssh
合計 8
drwx------ 2 test test   28  117 09:09 .
drwx------ 8 test test 4096  48 10:30 ..
-rw------- 1 test test  408  117 09:09 authorized_keys

ちなみに私は、CentOS上に新規で、test アカウントを作成しました。従って、SSH Key ファイルは、何もありません。

ssh-keygen -t ed25519 -C "your_email@example.com"

$ ssh-keygen -t ed25519 -C "shiozumi@e-smile.ne.jp"

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/test/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_ed25519.
Your public key has been saved in /home/test/.ssh/id_ed25519.pub.
The key fingerprint is:
9c:ad:06:f8:cf:71:a6:08:f5:6c:3b:6a:3c:2d:f7:48 shiozumi@e-smile.ne.jp
The key's randomart image is:
+--[ED25519  256--+
|                 |
|                 |
|                 |
|     . . o       |
|    . o S .      |
|     o + .       |
|    ....E o      |
|     .=B+B       |
|     .o=*o.      |
+-----------------+

$ ls -al ~/.ssh
合計 16
drwx------ 2 test test   66  49 11:23 .
drwx------ 8 test test 4096  48 10:30 ..
-rw------- 1 test test  408  117 09:09 authorized_keys
-rw------- 1 test test  464  49 11:23 id_ed25519
-rw-r--r-- 1 test test  104  49 11:23 id_ed25519.pub
  1. パスフレーズは、とりいそぎ、GitHubと共通にして置きました!
  2. id_ed25519 ・・・秘密鍵が作成。
  3. id_ed25519.pub ・・・公開鍵が作成。

SSH 秘密鍵を ssh-agent に追加する

こちらは、パスフレーズを安全に保存してくれます。これで、パスフレーズを毎回聞かれることがなくなるようです。こちらもとりあえず、GitHubサイトのドキュメントを、まずは鵜呑みして実行して行きます!

$ eval `ssh-agent -s`
> Agent pid 59566

$ ssh-add ~/.ssh/id_ed25519

// ↑↑↑ 秘密鍵を追加!

SSH 公開鍵を GitHub アカウントに追加します。

$ cat ~/.ssh/id_ed25519.pub

ssh-ed25519 AAAAC3NzaC1lZDI1NTE ~省略~ shiozumi@e-smile.ne.jp

公開鍵を出力し、画面からコピペして、GitHubの、SSH Key に登録します!

ssh-ed25519 ~省略~ shiozumi@e-smile.ne.jp

タイトルは、test で、仮登録してみました!

接続テスト ssh -T git@github.com

$ ssh -T git@github.com
The authenticity of host 'github.com (52.192.72.89)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'github.com,52.192.72.89' (RSA) to the list of known hosts.
Hi shiozumi-makoto! You've successfully authenticated, but GitHub does not provide shell access.
  1. yes/no を聞かれますので、まずは、yes と入力
  2. Warning: Permanently added が表示されますので、次の設定をしてください。

vi ~/.ssh/config コンフィグファイルを作成


$ cat ~/.ssh/config

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_ed25519
  User git
  
$ chmod 644 ~/.ssh/config
  1. IdentityFile の後に、秘密鍵のファイル名を設定します。
  2. アクセス権も、644 に再設定!

再度接続テスト ssh -T git@github.com

$ ssh -T git@github.com
Hi shiozumi-makoto! You've successfully authenticated, but GitHub does not provide shell access.

これで恐らく、Warning: Permanently は、出力されなくなったと思います。

では、最後に実際にpushしてみましょう!

以下は、リポジトリを新しく作成したときに出力される、いつもの初期化コマンド一式です。

echo "# 20210409" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:shiozumi-makoto/20210409.git
git push -u origin main

git remote add origin のアドレスは変わりました!

ここは、SSHを選択してください。SSHをクリックするだけで、スクリプトコマンドの内容もしっかり変わります。便利ですね。(⌒∇⌒)

まとめ git push IDもパスワードも無しでOK!

さあ~、みなさんも無事、SSH接続で、リポジトリをpushできましたか? 私もすべての環境で試していないので、なんとも言えませんけど、是非、SSH接続で開発効率を上げて行きましょう。こういった環境設定は、またまた、毎度の後悔文章で申しわけありませんが、最初にやるべきことでしたね~(^▽^;)

それでは、今回はここまで、お疲れ様でした!

https://zenn.dev/shiozumi/articles/07373f9bdfed84
https://twitter.com/esmile2013