パスワードの入力を求められるのではなく、SCP へのパラメータとしてパスワードを入力することはできますか?
SCP を使用してファイルをコピーするときにパスワードを保存するにはどうすればよいですか? この質問は似ていますが、回答では SSH パスワードを完全に廃止することについて扱っています。
答え1
いくつかのオプションがあります:
- sshpassを使用する
次のコマンドを実行します:
sshpass -p 'password' scp filename user@host:
sshpassをインストールします:
- Ubuntuの場合:
sudo apt install sshpass
sshpass - 非対話型 ssh パスワード プロバイダー
sshpass は、「キーボード インタラクティブ」パスワード認証と呼ばれるモードを使用して、非対話モードで ssh を実行するために設計されたユーティリティです。
ssh は直接 TTY アクセスを使用して、パスワードが実際に対話型キーボード ユーザーによって発行されたことを確認します。sshpass は専用の tty で ssh を実行し、対話型ユーザーからパスワードを取得していると思わせます。
実行するコマンドは、sshpass の独自のオプションの後に指定されます。通常は引数付きの「ssh」ですが、他のコマンドでもかまいません。ただし、ssh で使用されるパスワード プロンプトは現在 sshpass にハードコードされています。
- 使用期待する(または他のスクリプト)
SSHパスワードプロンプトを識別するとパスワードを挿入するスクリプトを作成します。
- キーペアを使用した ssh の使用 (パスワードを使用する代わりに)
私見ですが、これが最も安全な方法であり、パスワードを使用する必要がありません。
公開鍵/秘密鍵を使用して、パスワードを入力せずに操作をssh
実行します。scp
答え2
どのように行うかについての答えはすでにあるので、なぜ行わないのかに焦点を当てます。
- コマンドラインでパスワードを渡すと、ローカルユーザー、
ps
またはその他のプロセスリスターによってパスワードが盗み見られる可能性があります。 - 推測しにくく、覚えやすいパスワードを作成するのは難しいため、ssh ではパスワードを使用しないでください。
代わりに、公開キー/秘密キーを使用し、キーエージェントを使用してキーを一時的に記憶します。