0

ラズベリーパイ(ラズビアンを実行)で実行されている学校のプロジェクトのキーペアを生成しました。私が走るとき

ssh -f -N -R 54321:localhost:22 mylogin@host

コマンドラインでは問題ありません。パスワードを入力しなくてもトンネルが設定されます。ただし、シェル スクリプトからまったく同じコードを実行しようとすると、パスワードの入力を求められます。誰でも私のエラーを知っていますか?

4

1 に答える 1

1

ほとんどの Linux ディストリビューションでは、ssh-agentログイン時に のインスタンスが開始されます。これは、SSH キーの復号化されたコピーを保持するバックグラウンド プロセスです。このsshコマンドはssh-agent、公開鍵認証を行うために鍵へのアクセスを試みます。要点はssh-agent、ログイン セッション中に 1 回だけ SSH キーのパスワードを入力する必要があることです。(一部のディストリビューションでは、これを入力する必要さえありません。ログインすると、キーは自動的に復号化されます。)

cron から、または他のサーバー プロセス (Web サーバーや CGI スクリプトなど) からスクリプトを実行しようとしていると思いますか? sshその場合、コマンドが対話するために必要な環境変数が設定されていないssh-agentため、パスワードの入力を求められます (したがって、ターミナル内で実行されていない場合は失敗します)。

SSH キーの暗号化されていないコピーを保存することでこれを回避できます (したがってssh-agent、復号化する必要はありません)。ダウンし、最小限の特権を持つアカウント。

于 2013-11-05T16:29:04.210 に答える