はじめに
前回のrailsのDevcontainerでsshが組み込まれてないので、git関係が利用できていなかったので、それを対応した備忘録です
似た記事がたくさんあるので、詳細な説明は割愛します
確認
以前利用した環境は、こちらになります
コンテナ内でgitコマンドを実行するとこんな感じになります
$ git pull
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
確認
こちらを利用させていただきました(ありがとうございます)
wslを再起動
wsl --shutdown
ubuntuの関係パッケージを最新に更新
sudo apt-get update && sudo apt dist-upgrade -y && sudo apt autoremove -y
sudo apt install -y vim
ssh-agentの存在確認
ssh-add -l
ssh-agentが動いていない場合、以下のようになります
$ ssh-add -l
Could not open a connection to your authentication agent.
ssh-agentを起動
eval `ssh-agent`
確認
ssh-add -l
おそらく、初期の状態だと以下のように表示されます
$ ssh-add -l
The agent has no identities.
keychainのインストールおよび設定
インストール
sudo apt-get install keychain
SSHの秘密鍵をロード
/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa
keychainを起動
source $HOME/.keychain/$(hostname)-sh
確認
ssh-add -l
すると登録されている鍵が以下のように表示されます
起動で自動で動くように設定
毎回起動時に上記のコマンドをたたくのも面倒なので、「~/.bashrc」に登録しておきます
vim ~/.bashrc
# keychain
/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa # SSHの秘密鍵を読み込み
source $HOME/.keychain/$(hostname)-sh
確認
wslを再起動した後、railsのDevcontainerに接続。
その後、コンテナ内で「git pull」をすると以下のようになるはず!
$ git pull
Already up to date.
さいごに
この操作は毎回設定する物ではありませんが、丁度wslを初期化する機会があったので、備忘録として記録しました。
正直、似た記事はたくさんありますので、詳細説明は他のサイトを見ることをお勧めします。