Stocks and Flows

やったこと、考えたことの記録

sshの認証を使い回す

恥ずかしい話だが、ssh-agentというものがあるということを最近知った。

sshで毎回ログインパスワードを入力しなくてはならないのは億劫である。

例えば、自分のローカルサーバーからgithubへのssh権限はあるだろう。普通。

$ ssh -T git@github.com 
  # => Hi username! You've successfully authenticated, but GitHub does not provide shell access.

しかし、例えば開発用のサーバーにちょっと入ってリモートブランチをPullしたいなー、というときに、ログインしたユーザーではpullできない場合がある。

そんなときに活躍するのがssh-agent! らしい。

だが実際にはssh-agentコマンドを打つわけではない。次のようにする。

$ ssh -A ホスト名

こうすることでssh-agentに入っている認証がsshログインをした先でも使い回される。

ただ、一つ小さなハマりポイントがここにもあって、~/.ssh/ssh_config内の情報が使い回されるわけではどうやらないらしい。ここで使用する秘密鍵を指定しているだけでは使い回せなかった。

どうすればいいかというと、あらかじめ次のコマンドを実行しておく。

$ ssh-add 鍵

これで秘密鍵ssh-agentに登録できる。