2011-12-28 8 views
3

リモートサーバーで認証するためのパスワードを送信するbashスクリプトを作成します。Bashスクリプトで認証の詳細を送信するにはどうすればよいですか?

たとえば、コードをgithubリポジトリからサーバーにプルするbashスクリプトを作成したいが、それを行うにはパスワードまたはパスフレーズを指定する必要がある。

どのようにコードする必要がありますか?私は何かを試みたが、何も働かなかった。

答えて

7

私はそれがdiscussedでしたが、expectを使用できると思います。ここでは、SSHを使用してホストに接続するためにそれを使用しての例です:

#!/usr/bin/expect 

set password "YOURPASSWORD" 
set user "john" 
set host "192.168.1.100" 

spawn ssh [email protected]$host 
expect "Password:" 
send "$password\n"; 
interact 

あなたの「gitのプル」または代わりに、産卵後の「sshのユーザ@ホスト」のどんなコマンドを入れてください。予想されるプロンプト(この場合は「Password:」)が、スポーンされたコマンドの実行後の表示方法と同じであることを確認してください。

EDIT:インストールは、それは(apt-getの場合のように代わりに適性のを使用)ですDebianの上、簡単で期待:

aptitude install expect 
+0

期待/あなたがコミットしている場合は特に、使用するために本当に素晴らしいツールです追加の入力を促す/ etcフックをプルします。 –

+0

私は同意します! +1 ... –

+1

'autoexpect'も良いツールです。私はそれを元のスクリプトを作成するために使用して、私は修正が必要だと思う部分を編集して編集するのが好きです。 – SiegeX

関連する問題