19

スクリプト内で使用したいのですSSHが、このスクリプトは自分のマシンでは実行されません。

私の実装では、2 つの制限があります。

  • シェルの標準外では動作expectしないため、このマシンで使用できるかどうかわからないため使用できません。
  • このマシンpublic keysSSH.

可能なオプションと解決策は何ですか?

追加の依存関係を追加せずに、自動化された安全な方法で要求されたパスワードを ssh に提供するにはどうすればよいですか?

スクリプト内でパスワードを提供することは可能ですか?

よろしくお願いします:)

4

5 に答える 5

29

sshpass をインストールしてから、次のコマンドを実行します。

sshpass -p "yourpassword" ssh -o StrictHostKeyChecking=no yourusername@hostname
于 2013-06-05T12:48:50.723 に答える
11

まず第一に、なぜそれが安全なのかを理解していない限り(つまり、秘密を知っている攻撃者がどのような損害を与えることができるかを評価している場合)、秘密を平文で記述しないでください。

ssh-agentスクリプトにシークレットを入れても問題ない場合は、ssh キーを同梱してシェルで実行できます。

#!/usr/bin/env ssh-agent /usr/bin/env bash
KEYFILE=`mktemp`
cat << EOF > ${KEYFILE}
-----BEGIN RSA PRIVATE KEY-----
[.......]
EOF
ssh-add ${KEYFILE}

# do your ssh things here...

# Remove the key file.
rm -f ${KEYFILE}

ssh キーを使用する利点は、強制コマンドを簡単に使用して、キー所有者がサーバー上で実行できることを制限できることです。

より安全な方法は、スクリプトを実行ssh-keygen -f ~/.ssh/my-script-keyしてこの目的専用の秘密鍵を作成することですが、公開鍵をサーバーに追加するためのルーチンも必要になります。

于 2013-06-05T10:33:31.457 に答える