複数のシステムにSSHで接続し、各システムで簡単なコマンドを実行する必要があるとします。問題は、これを完了するためにパスワードを50回連続して入力したくないことです。だから当分の間はパスワードなしでRSAキーを使うと思います。私の質問は、非対話型スクリプトを実行するために一時的に秘密鍵ファイルにパスワードがないように設定し、次にコマンドを使用してssh-keygen -p
非常に安全なパスワードを設定するのが標準的な方法ですか?これを達成する他の方法はありますか?
答え1
私の質問は、非対話型スクリプトを実行するためにパスワードなしで秘密鍵ファイルを一時的に設定するのが標準的な方法ですか? [...]
習慣。標準的な慣行は、キーエージェントを使用してパスワードを保存することです。キーエージェントを使用している場合、エージェントにキーを追加するときにパスワードを一度入力すると、エージェントはユーザーが開始したSSH接続にそれを提供します。
これに関する多くのチュートリアルがあります。簡単に言えば、これは基本的な使い方です。
# start ssh key agent and set environment variables
eval $(ssh-agent)
# add your private key
ssh-add
簡単に言えば、動作方法は次のとおりです。
このコマンドは、プログラムなどのプロセスが見つかる
ssh-agent
ように設定する必要があるいくつかの環境変数を出力します。この出力は、実際にはこのステートメントの目的である変数を設定するために実行する準備ができています。ssh
scp
rsync
ssh-agent
eval
ssh-add
設定された環境変数を使用してプロセスを見つけ、ディレクトリのデフォルトの場所ssh-agent
に秘密鍵を追加します。~/.ssh
この時点でパスワードを入力するように求められます。
その後、パスワードを再入力しなくても、鍵が認証されたサーバーにアクセスできるようにssh
なります。scp