-Aオプションを付与しても,Permission denied (publickey)エラーで接続できないときにやったことのメモ

(わかりずらいため,以下よりローカル環境のシェルを$,SSH 接続先環境のシェルを%で示すことにする)

TL;DR

接続元で以下コマンドを実行する

eval "$(ssh-agent)"
ls ~/.ssh/*.pub | sed -E 's/\.pub$//' | xargs ssh-add
ssh -A [SSH接続先情報]

ローカルから SSH する

ssh -A [接続先]で接続する

$ ssh -A [email protected]
...
%

SSH 接続先でキーが確認できるか確かめる

SSH 接続先で以下を実行

% ssh-add -l

失敗していたのでこんな感じだった

% ssh-add -l
Could not open a connection to your authentication agent.

ローカル環境で SSH エージェントを起動する

ローカル環境で以下を実行

$ eval "$(ssh-agent)"
Agent pid 22942

再び SSH 接続先でssh-addを確かめてみると,エージェントは起動しているが鍵がないといわれる

% ssh-add -l
The agent has no identities.

ローカル環境で SSH エージェントに鍵を登録する

ssh-add [秘密鍵のパス]を実行する

$ ssh-add ~/.ssh/id_ed25519
Identity added: /home/aaa/.ssh/id_ed25519 (aaa@aaa)

再び SSH 接続先でssh-addを確認.鍵が登録できていることがわかる

% ssh-add -l
256 SHA256:iKc2SSGdDPMSQ/HpmWBcQxJ5DNia5cIni6Y30/xIKJc aaa@aaa (ED25519)

SSH 接続先から別の SSH 接続先に SSH する

このときは-Aオプションはいらない

% ssh [email protected]
...
#