何らかの理由で、すべてのコマンドを実行するために「setsid」を使用する必要があります。
しかし、「setsid scp ~/aaa user1@10.170.3.17:/tmp/」を実行すると、パスワードを要求するダイアログ ボックスが表示されました。通常、プロンプトはコマンドラインで発生します。
sshの設定が原因ですか?ボックスをなくしたい。それを達成する方法は?
このコマンドの効果の 1 つは、setsid
setsid(1) によって開始されたプロセスが、その制御端末から切り離されることです。端末を制御scp
しないと、何も「見えない」という理由だけで、起動元の端末でパスワードを要求できません。ただし、「見える」のは、認証に使用される秘密 SSH キーのロックを解除するために必要なパスワードまたはパスフレーズを求めるグラフィカルユーティリティを表示できる X11 ウィンドウセッションがあることを示す環境変数です。リモートシステム。
「認識」し、x11-ssh-askpass
ダイアログを画面にルーティングするために使用する環境変数の設定を解除したとしても ( DISPLAY
)、必要なキーが欠落し、scp 操作が失敗するため、目的の効果が得られない可能性があります。
ここで私がお勧めする解決策の 1 つは、パスワードで保護されない「ID キー」を生成するために ssh-keygen(1) を使用して、「パスワードなし」ログインを設定することです (特定のセキュリティ環境で該当する場合)。
ファイルやコマンド ライン オプションでパスフレーズを提供するなど、他の可能性を検討することもできます。ssh(1) マンページの ENVIRONMENT セクションを見てください。