9

私はこのようなプログラムを持っています:

ssh -q harigm@8.19.71.238 exit
echo "output value  -->$?"

上記のコードでは、リモート サーバーに SSH で接続しようとしており、接続できるかどうかを確認しようとしています。パスワードレスがアクティブ化されているサーバーはほとんどなく、パスワードがまだ非アクティブ化されていないサーバーもほとんどありません。したがって、パスワードがある場合、パスワードを要求する同じ画面でスタックし、終了ロジックなしで無限に表示されます。

質問 : 上記のコードのタイマーを実装する方法と、パスワードを要求する同じ画面に留まる場合。いくつかのエラーコードで終了します

2) 上記のコードを実行すると、次のエラー コードが表示されます。

127 -- > I guess its for success
225 -- > for any error.

上記以外のエラーコードはありますか?

4

2 に答える 2

2

質問は、一度に多数のホストに対して (たとえば、ループで) 処理する「バッチ モード」について尋ねているようです。次のコマンドは、特定のホストに対して PKA が構成されていないssh場合 (公開鍵認証 -- 元の質問に記載されている「パスワードなし」のログイン) は単に失敗するため、問題に関係なく実行を継続したいスクリプトに適しています。 1 つまたは 2 つのホストに接続します。また、以前は不明だったホストへの「接続を続行してもよろしいですか」というすべてのクエリに煩わされることはありません (または、そのために に追加することもできます)。例えば、StrictHostKeyChecking no~/.ssh/config

for host in host1 host2 host3  # etc
do
  ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
      user@$host  'uptime' || echo "problem: host=$host"
done

ただし、これらのオプション ( 、) がサポートされているかどうかを確認するには、(クライアント)sshのマニュアル ページを確認する必要があります。BatchModeConnectTimeout

于 2013-07-10T09:01:48.897 に答える