GitHubのSSH接続の設定 - 2023/9/4
毎度適当に調べてなぁなぁにしてるのでメモ。
今回もひっかかかった・・・
鍵を作る
code:bash
# -t: 鍵の種類 -C: コメント -f: ファイル名
$ ssh-keygen -t ed25519 -C "hogehoge@example.com" -f id_ed25519_fuga
# ls
# id_ed_25519_fuga id_ed25519_fuga.pub
# .ssh/ 配下で作っていない場合は .ssh に移動する
GitHubに登録する
自身のGitHubアカウントにログインし、settings -> SSH and GPG keys -> New SSH key を選択。
公開鍵の内容をコピーして貼り付け、登録する。
code:bash
# Macの場合は pbcopy で内容をクリップボードにコピーできる
$ pbcopy < ~/.ssh/id_ed25519_fuga.pub
sshを設定する
code:bash
# configファイルを編集する
$ vim ~/.ssh/config
# Host github <- なんでも良い
# HostName github.com
# IdentityFile ~/.ssh/id_ed25519_fuga <- 秘密鍵を設定
# User git
接続を確かめて通ればOK
code:bash
$ ssh -T github # Host に設定した名前を指定する
# Hi tomikazu! You've successfully authenticated, but GitHub does not provide shell access.
# 返事が返ってきたら設定できてる
# Permission denied が返ってきたら、設定する鍵のファイルを間違えている可能性がある
適当なリポジトリをクローンしてみる
code:bash
$ git clone git@github:username/hogehoge.git
# git@****:username の、****の部分はconfigファイルに設定したHostの情報なので注意!!
# 間違えていると Permission denied
追記 - 2024/1/7
秘密鍵を別のマシンに移動して使おうとしたら若干困ったのでメモ。
$HOME/.ssh/id_ed25519_fugaに置いておくとする。
$HOME/.ssh/configは上の通り。
Permissionは適宜設定する。
.ssh:755
config:644
id_ed25519_fuga:400
この状態でssh -T githubは通る。
だが、git clone git@github:username/hogehoge.gitは通らず、Permission deniedとなる。
fatal: Could not read from remote repository.
原因としては、ssh-agentに情報が登録されていないからだった。
code:sh
$ ssh-add ~/.ssh/id_ed25519_fuga
これで情報を登録し、git cloneのときに使ってもらう。
このコマンドだが、通らない場合があったが再起動すると通ったので原因が不明である。
参考
最終的にここの記述で解決したと思います
ありがとうございます