2016-06-24 12 views
1

SSH鍵交換を使用して2つのサーバを接続しました。パスワードなしでリモートサーバーにログインできるようになりました。SSH鍵を使用してSSH接続を検証する

ここで、パスワードなしで接続が実際に機能しているかどうかを確認したいと思います。どうすればいいですか?

SSHが10秒後にタイムアウトするようなアプローチを試しましたが、私はリターンコードを取得します。しかしそれは決してしません。一度それはタイムアウトします。これはパスワードプロンプトに残ります。

ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit 

if [ "$?" -ne 0 ];then 
    echo "SSH keys no more working,you need to initiate keys exchange again!!" 
    exit 1; 
fi 

ケース-I

しかし、SSH鍵は、その後の作業と、それは決してタイムアウトとパスワードプロンプト上に残っていないとき。したがって、リターンコードを取得することはできません。

ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit 
Enter Windows password: 

場合-II

私は、このapproch作品ping可能ではないIPアドレスを提供する場合。

ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit 
ssh: connect to host ip1.ip1.ip1.ip1 port 22: Connection timed out 

SSH接続がパスワードなしで動作しているかどうかを判断するのに役立つ必要があります。

+0

「ssh -v」を実行することをお勧めします。これは、sshがどのタイプの認証を使用しているかについてのデバッグトレースを提供します(特に、ホスト上の公開鍵が存在する場合)。 – oliv

+0

@Cyrus、同じ結果です。コマンドは終了しません。 –

答えて

1

パスワード認証を無効にするには、PasswordAuthentication=noを使用します。 pubkey認証に失敗するとすぐに失敗します。

ssh -o BatchMode=yes -o ConnectTimeout=15 [email protected] exit 

編集:BatchModeを使用してください。

+0

素晴らしいので、PasswordAuthenticationとConnectTimeoutの組み合わせが必要です!! –

+0

'ConnectionTimeout'は必要ありませんが、サーバに到達できない場合は参考になります。 – Jakuje

+0

同じコマンドが機能しません。そのパスワードを尋ねるのは –

関連する問題