2016-04-15 15 views
1

私は公開鍵認証でSFTPを使用して多数のファイルをサーバーに送信しようとしています。シェルがパスフレーズを要求することなく、どうすればいいですか? 、パスフレーズのないSFTP一括転送

#!/bin/bash 
eval `ssh-agent` 
ssh-add /path/to/your/key 

for f in "[email protected]" 
do 
    sftp [email protected] << DELIMITER 
    cd DIR 
    put $f 
    quit 
DELIMITER 

done 

それはssh-agentであなたの鍵を格納する一度パスフレーズを要求し、その後、すべてのサーバーにログインできます:

#!/bin/bash 
for f in "[email protected]" 
do 
    sftp [email protected] << DELIMITER 
    cd DIR 
    put $f 
    quit 
DELIMITER 

done 
+0

この質問は[タグ:バッチファイル](DOS/Windowsバッチスクリプト)にリンクされていませんので、タグを修正してください! – aschipfl

+0

修正済み。申し訳ありませんが、バッチファイルとバッチファイルの処理が間違っています –

答えて

0

使用ssh-agent

私のスクリプトは次のようになります。スクリプトの外でもこれを行うことができます。

+0

このスクリプトは、cronジョブによって「自動的に」実行されることを意図しています。プロセス全体を設定する前にパスフレーズを一度追加することは可能でしょうか? –

+0

はい。エージェントを手動で起動し、同じユーザのもとで実行されるならば、適切な変数 '$ SSH_AUTH_SOCK'をスクリプトに設定することができます。 'ssh-add'のマニュアルページを見てください。 – Jakuje

関連する問題