手順は以下。
・秘密鍵とssh-agentを使ってパスフレーズなどを入力せずssh接続出来るようにする
・GithubのSSH Keysに公開鍵を登録する
・秘密鍵を~/.ssh/に置く
・~/.ssh/configに以下を追加
Host github.com User git port 22 Hostname github.com IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes IdentitiesOnly yes StrictHostKeyChecking no
・ssh-agentの起動
eval `ssh-agent` # ssh-add ~/.ssh/id_rsaをautoexpectを使ってスクリプトにしたファイル ./ssh-add-key-to-agent.exp
・GithubからCloneする
# なぜかroot権限でないとssh-agentがパスフレーズを入力してくれないので、root権限で実行 sudo SSH_AUTH_SOCK=$SSH_AUTH_SOCK git clone --depth 1 git@github.com:uname/pjtname.git # ownerがrootになっているので、ec2-userに変更する sudo chown ec2-user:ec2-user ./pjtname/ -R
root権限でないとssh-agentがうまく動かない罠にはまった。。
デバッグ時にssh -vT
これを実行するとデバッグログが出る。
参考:sshで初回ログイン時に「Are you sure you want to continue connecting (yes/no)? 」を抑止する方法 - ablog
Git clone using ssh agent forwarding and sudo
Redirecting...