SSHコマンドでパスワード再試行を無効にする方法

SSHコマンドでパスワード再試行を無効にする方法

sshコマンドがパスワードを一度だけ入力できるようにしたいと思います。最初にパスワードが間違っていると、sshが返されます。

Permission denied (publickey......).

sshにパスワードを一度だけ要求するように指示するフラグはありますか?

変える:

[nir@dhcppc4 ~]$ ssh [email protected]
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied (publickey.....).

私の考えでは:

[nir@dhcppc4 ~]$ ssh [email protected]
[email protected]'s password: 
Permission denied (publickey.....).

解決策はクライアント側になければなりません(たとえば、sshコマンドにいくつかのフラグまたはパイプを使用するなど)。この部分sshd_configまたは他のシステム構成ファイルに触れることはできません。通常、私はLAN上のサーバーにアクセスするサードパーティ製のソフトウェアを構築しているので(キーを生成したりシステムファイルを設定したりすることはできません)、パスワードはデータベースに保存されます(したがって2回目の試みは不要です)。私のコードで一度だけ試すことができると仮定すると、ssh関連するscpコードが単純化されます。

ベストアンサー1

SSHd 構成マニュアルページからman 5 sshd_config:

 MaxAuthTries
     Specifies the maximum number of authentication attempts permitted
     per connection.  Once the number of failures reaches half this
     value, additional failures are logged.  The default is 6.

MaxAuthTries 2したがって、必要な設定になります。sshd後で再起動が必要です(rootとして実行する必要があります)。

/etc/init.d/ssh restart 

または

service ssh restart

クライアント側では、SSH設定を使用してこれを設定できます(man 5 ssh_config適用可能な設定を参照)。

 NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

そのため、~/.ssh/configファイルを編集して次を追加します。

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

<name_or_ip_of_host|*>コマンドラインまたはすべてのホスト接続を試みるために使用*される正規のIPまたはホスト名。ファイルを編集せずにコマンドラインで指定することもできます/.ssh/config

  ssh -o NumberOfPasswordPrompts=1 user@hostname 

おすすめ記事