#6: SSH, GPG について調査、GitHub への登録
今日やったこと(Done)
SSH
$ ssh-keygen -t rsa -b 4096 -C "ryocalm-macmini" Generating public/private rsa key pair. Enter file in which to save the key (/Users/ryocalm/.ssh/id_rsa): Created directory '/Users/ryocalm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
$ ssh-add .ssh/id_rsa $ ssh-add -l #登録できているか確認
GitHub へ登録。
Adding a new SSH key to your GitHub account - GitHub Docs
GPG
$ brew install gnupg
インストール後に表示されたメッセージを一応メモしておきます。
# (中略) ==> Installing gnupg ==> Pouring gnupg-2.2.21.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/gnupg/2.2.21: 134 files, 11.1MB ==> Caveats ==> gettext Emacs Lisp files have been installed to: /usr/local/share/emacs/site-lisp/gettext ==> libffi libffi is keg-only, which means it was not symlinked into /usr/local, because macOS already provides this software and installing another version in parallel can cause all kinds of trouble. For compilers to find libffi you may need to set: set -gx LDFLAGS "-L/usr/local/opt/libffi/lib" set -gx CPPFLAGS "-I/usr/local/opt/libffi/include" ==> openssl@1.1 A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl@1.1/certs and run /usr/local/opt/openssl@1.1/bin/c_rehash openssl@1.1 is keg-only, which means it was not symlinked into /usr/local, because macOS provides LibreSSL. If you need to have openssl@1.1 first in your PATH run: echo 'set -g fish_user_paths "/usr/local/opt/openssl@1.1/bin" $fish_user_paths' >> ~/.config/fish/config.fish For compilers to find openssl@1.1 you may need to set: set -gx LDFLAGS "-L/usr/local/opt/openssl@1.1/lib" set -gx CPPFLAGS "-I/usr/local/opt/openssl@1.1/include" ==> unbound To have launchd start unbound now and restart at startup: sudo brew services start unbound
Generating a new GPG key - GitHub Docs
いろいろ調べていたら時間がかかったので今日は途中まで進めて中断しました。
わかったこと(Fact)
- Homebrew で
gpg
とgnupg
でそれぞれ複数の Formulae が存在するが alias のようなものだった。gpg
==gpg2
==gnupg
gpg1
==gnupg@1.4
出力結果
$ brew search gpg ==> Formulae gpg gpg1 gpg2 gpgme libgpg-error ==> Casks gpg-suite gpg-sync gpg-suite-no-mail homebrew/cask-versions/gpg-suite-nightly gpg-suite-pinentry
$ brew search gnupg ==> Formulae gnupg gnupg-pkcs11-scd gnupg@1.4
$ brew info gpg gnupg: stable 2.2.21 (bottled) ...
$ brew info gpg1 gnupg@1.4: stable 1.4.23 (bottled) ...
$ brew info gpg2 gnupg: stable 2.2.21 (bottled) ...
- PGP (Pretty Good Privacy) の主な用途はファイルやメールの暗号化、および署名やその検証。
- PGP はシマンテック社の商用の有償ソフトウェアらしい。
- OpenPGP は PGP の暗号化方式を標準化した仕様で IETF によって RFC 4880 として公開されている。
- GPG (GNU Privacy Guard) は OpenPGP に基づいた PGP の別実装。GPL (GNU General Public License) に基づき無料で利用できる。
OpenPGP は、ファイルを暗号化するために使用される鍵方式の暗号化で、意図した受信者だけがファイルを受信して復号化できます。OpenPGP は電子メール通信の保護に広く使用されていますが、その技術は FTP にも適用できます。
OpenPGP は2つの暗号化キーを使ってファイルを保護します。公開鍵を使ってファイルを暗号化し、対応する秘密鍵だけがファイルを復号化できます。
通信を暗号化するSSL や SSH とは異なり、OpenPGP はアップロードする前にファイルを暗号化する方法です。そのため OpenPGP モードは、標準の FTP、SSL、SSH 接続と組み合わせて使用できます。
from: PGP、OpenPGP、GnuPG 暗号化の違い
- 2048 bit 以下の RSA/DSA 鍵は強度が不足しているという認識でよい。
References
SSH, GPG に関する記事、資料など。
SSH
- 共通テーマ: OpenSSH キー (鍵) の管理: 第 1 回
- 2017年版 SSH公開鍵認証で使用する秘密鍵ペアの作り方 - Qiita
- GitHubユーザーのSSH鍵6万個を調べてみた
- fish で ssh agent を永続化 - Qiita
- GitHubへの認証方法 - GitHub Docs
- GitHub に SSH で接続する - GitHub Docs
- Gitのセットアップをする(強い SSH key を使う、 GPG key を使った署名付きコミットを行う) - Qiita
- git(GitHub)でGPGを使った署名をおこなう - Qiita
- macOS で GitHub にGPG署名付きでコミットできるようにする - Qiita
- macOS Mojave で GnuPG の鍵を SSH の鍵として使う - Qiita
- [GitHub] GPG署名による証明を設定する | Chronogram - バンコクで生きる、ITエンジニア ⚡️
- お前らのSSH Keysの作り方は間違っている - Qiita
PGP, GPG
- The GNU Privacy Guard
- gnupg — Homebrew Formulae
- 1分でわかるPGP - 村川猛彦
- PGP、OpenPGP、GnuPG 暗号化の違い
- PGP(Pretty Good Privacy)とは - IT用語辞典 e-Words
- GnuPGでファイルを暗号化・復号する手順 | ラボラジアン
- GPG でファイルを暗号化, 復号化, 署名, 検証する方法 - yu8mada
- PGPからGPGに公開鍵を移行する - hogehoge foobar Blog Style Beta
Windows 環境でのセットアップについて。
- PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ! ~セットアップ編~ - Qiita
- PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ!~公開キー配布編~ - Qiita
- PGP(GnuPG)の導入方法教えてやるから、いい加減、ファイルをZIP暗号化して、別メールでパスワードを送るのは、やめてくれ! ~ファイル添付編~ - Qiita
Homebrew
- brew(1) – The Missing Package Manager for macOS — Homebrew Documentation
- FAQ — Homebrew Documentation
- MacへのHomebrewのインストールと使用方法 | アールエフェクト
その他
次にやること(Next)
- [ ] GitHub の GPG key の設定(続き)