そのため、sshを使用して多数の異なるユーザーとしてサーバーにログインする必要があり、ユーザーのパスワードを含むファイルから毎回パスワードをコピーするのにうんざりしています。パスワードを使用しないように変更することはできません。私のものではなく、ゲーム用です。
私は使ってみました:
$ cat /path/to/myfile | ssh user@localhost
Stdinが端末ではないため、疑似端末が割り当てられないというメッセージが表示されます。
私はそれがどのように機能するべきか本当にわかりません。
まず最初に、あなたにとって最良の解決策は、新しいssh鍵ペアを作成し、この鍵を使用してすべてのサーバーに(またはいくつかは、設定に基づいて)ログインすることです。方法がわからない場合は、stackexchangeで何度も見つけることができますが、ショートカットは次のとおりです。
ssh-keygen; ssh-copy-id your-Host
基本的には、キーにパスフレーズを設定する必要があります。そのため、1つのパスワードで一度だけログインします。
しかし、もしあなたが本当にファイルからあなたのパスワードを使うことを主張するなら、あなたはコメントで説明されているように非常に簡単にそれを行うことができます:
sshpass -f /path/to/myfile ssh user@localhost
ただし、これはプレーンテキストで保存されたパスワードでssh
を使用する方法としてはあまり好ましくないことに注意してください。
次のようにexpect
スクリプトを使用して同じことを行うことができます:
#!/usr/local/bin/expect
spawn ssh [email protected]
expect "password:"
send "your_password\n";
interact