パスワードなしのログインを有効にすると、SSH を使用してリモート マシンでバッチ モードでコマンドを実行するか、SCP を使用してリモート マシンとの間でファイルをコピーできます。
パスワードを使用しないログインに問題がある場合、バッチ プログラムがループまたはタイムアウトになる可能性があります。
この記事では、パスワードを待たずに操作できる場合にのみ、ssh/scp に操作を指示する方法を確認します。
これを試す前に、ローカル間でパスワードなしのログインが設定されていることを確認してください。ホストとリモート ホスト。
1. ssh -o “BatchMode yes” 使用例
パスワードなしのログインを有効にしている場合、次の例はリモート ホストにログインし、パスワードを要求せずに who コマンドを実行します。
local-host# ssh ramesh@remote-host who
パスワードなしのログインが有効になっていない場合、以下に示すように、リモート ホストでパスワードの入力を求めるプロンプトが表示されます。
local-host# ssh ramesh@remote-host who ramesh@remote-host's password:
ssh -o “BatchMode yes” を使用すると、パスワードなしのログインが有効になっている場合にのみ ssh が実行され、それ以外の場合はエラーが返されて続行されます。
local-host# ssh -o "BatchMode yes" ramesh@remote-host Command
SSH を使用したバッチ モード コマンドの実行 — 成功例
local-host# ssh -o "BatchMode yes" ramesh@remote-host who .. [Note: This will display the output of remote-host's who command]
SSH を使用したバッチ モード コマンドの実行 — 失敗例
local-host# ssh -o "BatchMode yes" ramesh@remote-host who Permission denied (publickey,password).
注: -o "BatchMode yes" を使用しなかった場合、上記のコマンドはリモート ホスト上の自分のアカウントのパスワードを要求します。これが、BatchMode の yes オプションを使用する場合の主な違いです。
2. scp -B オプションの使用例
scp -B オプションを使用すると、パスワードなしのログインが有効になっている場合にのみ scp が実行されます。それ以外の場合は、パスワードを待たずにすぐに終了します。
$ scp -B file root@IP:PATH
バッチ モードの SCP — 成功例
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp yp.conf 100% 84 0.1KB/s 00:00
バッチ モードの SCP — 失敗例
この例では、認証なしで scp が可能な場合、コマンドが実行され、それ以外の場合は以下のように終了します。
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp Permission denied (publickey,password). lost connection