web-dev-qa-db-ja.com

bashを使ってsshのパスワードを入力するにはどうすればいいですか?

私は毎日sshを通してサーバーに接続しています。私はこのルーチンを通過します:

IC001:Desktop user$ ssh [email protected]
[email protected]'s password: 

Last login: Tue Jun  4 10:09:01 2013 from 0.0.0.0
$

私はこのプロセスを自動化して私のためにそれをするためのbashスクリプトを作成したいと思います。セキュリティを気にする必要はありません。パスワードをスクリプトに公開して格納してもかまいません。スクリプトが実行されている間に、画面上で公然と入力されても構いません。だから私はこれを作成しました:

#!/bin/bash          
ssh [email protected]
echo mypassword

しかし、うまくいきません。 sendの代わりにechoを試してみましたが、うまくいきませんでした。それが可能であるかどうかアドバイスしてください。

78
Prostak

あなたがキーを使用することができないかどうか再確認してください。

それ以外の場合はexpectを使用します。

#!/usr/bin/expect -f
spawn ssh [email protected]
expect "assword:"
send "mypassword\r"
interact
172
michas

新しい鍵ペアを作成します。(デフォルトのままにします)

ssh-keygen

公開鍵をサーバーにコピーします。(前回のパスワード)

ssh-copy-id [email protected]

今からサーバー上であなたの鍵を認識し、もうパスワードを要求しないようにする必要があります。

ssh [email protected]
91
michas