パスワードが設定されているので、複数のサーバーにログインしてすべてのサーバーでコマンドを実行したいと思います。私はこれを試しました
#! /bin/bash
for HOST in $(cat servers.txt ) ; do
ssh -o $HOST "uname -a" PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no
done
しかし、これは役に立ちません。
答え1
正式な順序を試してみましょう。
ssh -o PubkeyAuthentication=no \
-o PreferredAuthentications=keyboard-interactive,password \
$HOST "uname -a"
PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no
コマンドを使用すると、sshはそれをリモートホストに送信するパラメータとして解釈します。
SSHを使用してリモートホストに接続するには、主に3つのソリューションを使用します。
1) リモコンパスワード
シンプルでシンプルです。毎回リモートホストのパスワードを入力します。
長所:設定不要
短所:毎回パスワードを入力する必要があります
2) パスワードのない鍵ペア
パスワードなしで秘密鍵と公開鍵のペアを作成し、リモートアカウントに公開鍵を配布する必要があります。
長所:パスワードが不要
短所:鍵が盗まれること
3) パスワードで保護された鍵ペア
パスワードで秘密鍵と公開鍵のペアを作成し、リモートアカウントに公開鍵を配布する必要があります。キーをメモリにロードするか(ssh-agent
)、毎回パスワードキーを入力できます。
利点:キーが盗まれない
欠点:パスワード入力またはロード/アンロードが必要
どの接続を使用しているかが見つかりません。ssha host
あなたのコメント「」の「a」はスペルエラーのようです。 「passphrase」という単語を使用したので、秘密鍵にパスワードフレーズを設定したとします。これが使用された表現だからです。
私の次の推測はあなたがそれを試していることです
ssh $HOST uname -a