ラズベリーパイ(ラズビアンを実行)で実行されている学校のプロジェクトのキーペアを生成しました。私が走るとき
ssh -f -N -R 54321:localhost:22 mylogin@host
コマンドラインでは問題ありません。パスワードを入力しなくてもトンネルが設定されます。ただし、シェル スクリプトからまったく同じコードを実行しようとすると、パスワードの入力を求められます。誰でも私のエラーを知っていますか?
ほとんどの Linux ディストリビューションでは、ssh-agent
ログイン時に のインスタンスが開始されます。これは、SSH キーの復号化されたコピーを保持するバックグラウンド プロセスです。このssh
コマンドはssh-agent
、公開鍵認証を行うために鍵へのアクセスを試みます。要点はssh-agent
、ログイン セッション中に 1 回だけ SSH キーのパスワードを入力する必要があることです。(一部のディストリビューションでは、これを入力する必要さえありません。ログインすると、キーは自動的に復号化されます。)
cron から、または他のサーバー プロセス (Web サーバーや CGI スクリプトなど) からスクリプトを実行しようとしていると思いますか? ssh
その場合、コマンドが対話するために必要な環境変数が設定されていないssh-agent
ため、パスワードの入力を求められます (したがって、ターミナル内で実行されていない場合は失敗します)。
SSH キーの暗号化されていないコピーを保存することでこれを回避できます (したがってssh-agent
、復号化する必要はありません)。ダウンし、最小限の特権を持つアカウント。