EC2にログインした際に、 -A というオプションを付けました。
これが「ssh-agentを用いてログインしますよ」と言った意味合いで、
ssh-agentを誤解されているように思います。
ssh-agentが使える状況ならば、sshコマンドは特にオプションを指定しなくてもssh-agentを使ってログインします。
-A オプションは、通常ローカルのsshコマンドからしか使えないssh-agentをリモートサーバ上でのsshコマンドからも使えるようにする“ssh-agent転送”を有効にする為の物です。
Discussion
これはあまりいい例えでは無いですね。「秘密鍵を渡してくれる」ではなくて「代わりに鍵を開けてくれる」の方がいいでしょう。
ssh-agentは秘密鍵を渡さないので、不正にssh-agentが利用されても秘密鍵自体は盗まれないというのが重要です。
.sshディレクトリに移動する必要は有りません。
またsshコマンドで鍵の名前を指定する必要も有りません。sshコマンドで指定するのは、ログインするホスト名ですね。
ssh-agentを誤解されているように思います。
ssh-agentが使える状況ならば、sshコマンドは特にオプションを指定しなくてもssh-agentを使ってログインします。
-A オプションは、通常ローカルのsshコマンドからしか使えないssh-agentをリモートサーバ上でのsshコマンドからも使えるようにする“ssh-agent転送”を有効にする為の物です。
必要ありません。むしろセキュリティ的な面から見ると設定してはいけません。
ForwardAgent yesは-A オプションと同じくssh-agent転送を有効にする為の設定です。リモートサーバからGitHubにSSH接続する場合、リモートサーバ上のsshコマンドがssh-agentを利用出来れば十分なので、GitHubまでssh-agentを転送する必要は有りません。
不必要にGitHubへssh-agentを転送する事は、GitHub上のユーザが不正にssh-agentを利用できるようにするだけなので、行うべきではありません。