Open3

新しいPCでGitHubにssh接続する方法・公開鍵を設定方法とSSHパスワード入力を省略する方法について📝

まさぴょん🐱まさぴょん🐱

新しいPCで、GitHubにssh接続する方法・公開鍵を設定する

  • 新しいPCで、GitHubにssh接続する方法・公開鍵を設定について、まとめます。

ローカルPCのターミナルでの対応

鍵の生成コマンドを実行

ssh-keygen

# key nameを指定して作る (test という名前でssh-keyを作成する場合)
ssh-keygen -t rsa -C test

保存先の確認、鍵の名前の変更

Enter file in which to save the key (/Users/ユーザー名/.ssh/id_rsa):
  • /Users/ユーザー名/.ssh/id_rsaで良いかとの確認の文章が出る。
    • id_rsaという鍵の名前で問題なければEnter
  • 名前を変えたい時は、/Users/ユーザー名/.ssh/鍵の名前

パスワードの設定

Enter passphrase (empty for no passphrase): 
  • SSH鍵用のパスフレーズを入力する。
  • このパスフレーズは、コマンドラインでSSHを使用してプッシュする際などに毎回求められるもので、GitHubのパスワードとは別
  • このとき入力した文字は表示されないので、タイプミスをしないように注意
  • パスコード+Enterの入力は2回求められます

.pubファイルの中身をクリップボードにコピー

pbcopy < ~/.ssh/hoge.pub

# id_ed25519の公開鍵の場合
pbcopy < ~/.ssh/id_ed25519.pub

GitHub側での対応

SSHのkey(公開鍵)を GitHub 側に追加する

SSOの認証が必要なら、ポチッとする

GitHub との ssh接続のテスト

  • SSHの接続をチェック
ssh -T git@github.com
  • このコマンドで、次のように表示されたら、「yes」と入力してEnterを押します
The authenticity of host 'github.com (207.97.227.239)' 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)?
  • 接続がうまくできていれば、下のメッセージが返ってくるはずです
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

参考・引用

https://zenn.dev/kokoaola/articles/fea8e00847fcf0

https://qiita.com/morikuma709/items/5de623f3a3448f5d6f83

https://zenn.dev/st43/articles/d560e33d58622f

まさぴょん🐱まさぴょん🐱

パスワードを毎回、求められる場合の対応

SSH キーを ssh-agent に追加する

eval "$(ssh-agent -s)"
> Agent pid 59566 # ←pidの番号は人によって変わる(当然)

SSHのconfigファイルの修正

$ open ~/.ssh/config

# 存在しない場合の出力
> The file /Users/YOU/.ssh/config does not exist.

# 以下のコマンドでファイルを作成
$ touch ~/.ssh/config

# 以下をファイル内に追加
Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
$cat ~/.ssh/config

# [ 実行結果 ]
Host github //任意の英字で設定する。
  HostName github.com //必ずこれでないとダメらしい。
  IdentityFile ~/.ssh/id_ed25519 //ファイルのルートとファイル名を設定
  User git //必ずこれでないとダメらしい。
  • configファイルがない場合は新たに作成してください。
  • GitHub Enterprise Server でサポートされていない公開鍵のファイル名をつける際にはIdentityFileのルートとファイル名を適宜変更してください。

SSH秘密鍵をssh-agentに追加して、パスフレーズをキーチェーンに保存

  • MacOSを想定しているため、--apple-use-keychainを使用してキーチェーンにパスフレーズを保存
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

GitHubアカウントへの新しい SSH キーの追加

cat ~/.ssh/id_ed25519.pub
> ssh-ed25519 xxxxxxxxxxxxxxxxxxxxxxxx...
# 上記の`ssh-ed25519...`の部分を全てコピー

SSH接続確認をする

$ssh -T github
Hi user_name! You've successfully authenticated, but GitHub does not provide shell access.
  • "Hi user_name! ~~"と出て来れば接続完了!!

参考・引用

https://zenn.dev/keiziii_san/articles/cc1ae52dcc6bbe#ssh-config

https://zenn.dev/nikaera/articles/ssh-config-github

まさぴょん🐱まさぴょん🐱

ssh-keygen -t rsa -C testの意味📝

ssh-keygen -t rsa -C test コマンドは、SSHキーペアを生成するためのコマンドで、以下のように各オプションが機能します。

  • ssh-keygen:SSHキーペア(公開鍵と秘密鍵)を生成するツール。
  • -t rsa:キーのタイプを指定。rsaはRSA暗号方式を使用することを意味します(他にecdsaed25519などがある)。
  • -C test:生成される公開鍵にコメントを付加。testはコメントの内容で、通常はキーの用途や所有者を識別するために使われます(例:メールアドレスや説明)。

実行結果

  • このコマンドを実行すると、RSA方式のSSHキーペア(id_rsa:秘密鍵、id_rsa.pub:公開鍵)がデフォルトで~/.ssh/ディレクトリに生成されます。
  • 公開鍵には-Cで指定したtestというコメントが付加され、鍵の識別が容易になります。
  • 実行中にパスフレーズの入力を求められる場合があります(セキュリティ強化のため。空でEnterを押すとパスフレーズなし)。

生成された公開鍵の内容(id_rsa.pub)は以下のような形式になります:

ssh-rsa AAAAB3NzaC1yc2E... test

最後のtestがコメント部分です。

注意点

  • -Cのコメントは任意で、指定しなくてもキーは生成可能。
  • RSAは古いアルゴリズムで、最近はed25519が推奨される場合も。
  • 既存の鍵がある場合、上書き確認が表示されるので注意。