web-dev-qa-db-ja.com

クライアントからのssh公開鍵認証を一時的に無効にする

SSH実行時に公開鍵認証を一時的に無効にし、代わりにパスワード認証を使用する方法はありますか?

現在リモートサーバーにアクセスしたいのですが、自分ではなく別のラップトップを使用しています。

link を参照すると、コマンドssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no Host1.example.orgはどこでも機能しません。そして、はい、それは私にはうまくいきません。使用しています:OpenSSH_5.9p1 Debian-5ubuntu1、OpenSSL 1.0.1 2012年3月14日

編集:私はまた入力しようとしましたssh -o PreferredAuthentications=password -o PubkeyAuthentication=noですが、「アクセスが拒否されました(公開鍵)」のままです。

それで、そのコマンドが機能するために、リモートサーバーで行う特定の構成はありますか?または、そのコマンドが期待どおりに機能するのはいつですか?

アドバイスありがとうございます。

40
Nsukami _

これは、サーバー側の構成の問題のように聞こえます。

サーバーが公開鍵認証とパスワード認証の両方を許可している場合、クライアントに秘密鍵ファイルが存在しない状態で接続を試みても、パスワードの入力を求められるはずです。

エラーメッセージ"Permission denied (publickey)"が表示される場合は、サーバーでパスワード認証がサポートされていないようです。

/ etc/sshd_configファイルを確認しないと知るのは難しいですが、私の推測では、次の行が存在することを確認する必要があります。

PasswordAuthentication yes

Sshサーバーを再起動します。クライアントから接続するときに、秘密鍵が存在しない場合、または秘密鍵がサーバーの公開鍵と一致しない場合は、パスワードの入力を求められます。

もちろん、これより安全な方法は、使用しているラップトップに秘密鍵をコピーするか、そのラップトップで使用する新しい秘密鍵を実際に生成し、公開鍵を.ssh/authorized_keysに追加することです。

8
v25

空のIDファイルを作成するだけです。

touch $HOME/.ssh/blank

権限を640または644のままにすると、sshは、権限が十分に安全ではなく、使用しないことを報告します。これを600にchmodすると、パスワードが3回要求され、パスワードがないため失敗します。したがって、640または644のままにします。

次に、sshを実行するときにこのコマンドを使用します。

ssh -i $HOME/.ssh/blank servername-or-ip

.ssh/configを使用して、キーを使用しないようにHostエントリを設定できますが、一時的ではありません。または、サーバーとサーバーのnokeyのエイリアスを作成できますが、長くなり、メンテナンスが面倒です。

7
shane

サーバーへのログイン時にキー認証をバイパスする場合は、次のコマンドを実行します。

ssh -o PubkeyAuthentication=no user@Host
5