ssh-agentを使ってsudoでscpを使用する際の覚書

Pocket

ローカルの秘密鍵を使ってリモートサーバから別サーバにSCPする覚書です。

Ref.

前提

  • サーバfoobarbazがあるとします
  • すべてサーバにローカルの同じ秘密鍵でSSH接続できるとします
  • サーバfooにローカルの秘密鍵をコピーせずに、サーバfooからSCPでサーバbarbazにファイルをコピーします

ssh-agent

秘密鍵はprivkeyファイルとして進めます。
またSSH接続情報はローカルおよびfooサーバの~/.ssh/configfoobarbazとして設定済みとします。

# ssh-agent起動と鍵の登録
local$ eval `ssh-agent`
local$ ssh-add ~/.ssh/privkey

fooサーバにSSH接続します。
Aオプションを付けることでローカルの鍵およびパスフレーズがfooサーバに引き継がれます。

local$ ssh -A foo

fooサーバのカレントディレクトリのsample.zipをサーバbarbaz/var/sampleにコピーします。
SCPsudoで実行する場合は、環境変数SSH_AUTH_SOCKを引き継ぐようにEオプションを付与します。
Eオプションは環境変数を引き継ぐ)

foo$ sudo -E scp sample.zip bar:/var/sample/sample.zip
foo$ sudo -E scp sample.zip bar:/bar/sample/sample.zip

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。