web-dev-qa-db-ja.com

ローカルホスト接続でキーORパスワードを要求しないようにSSHサーバーを設定します

変なケースを満足させようとしていますので、ご容赦ください。

signedOpenSSHキーを使用して、グラフィカルなWindowsツール(WinSCP、PuTTYなど)を使用します。これらのツール 署名付きキーはサポートしていません 。しかし、それらは多くの「転送」および「プロキシ」メソッドをサポートしています。

OpenSSHコマンドを実際に実行する「ローカルプロキシ」を使用してそれらを設定できます同じサーバーに署名されたキーを使用して、トンネルをセットアップします:ローカルポート2222はサーバーの127.0.0.1:22に転送します

これで、Windowsツールはalready-authenticatedトンネルを介してssh/scpコマンドを実行できるようになりました...しかし、最初に試行するのは:sshを開いて認証します(署名された鍵を渡すことはできません...)。

したがって、トンネルですでに認証されているので、リモートマシンのsshサーバーを[〜#〜] not [〜#〜]に設定することはできますか。パスワードもキーも、接続試行が127.0.0.1:22を超えて行われた場合

私が「リモート」に到達するための「ジャンプ」サーバーについて話しているのではないことに注意してください。 「リモート」サーバーは1つしかありません。

TL; DR:

Ubuntuサーバーでssh [email protected]を実行したいのですが、キーやパスワードの入力を求められませんが、要求が127.0.0.1からのものである場合のみです。

1
Slav

次の行を追加することで、ユーザーに空のパスワードを設定し、ローカルホストからの空のパスワードによる認証を許可できます (top ファイルの/etc/ssh/sshd_config

Match Address 127.0.0.*
  PermitEmptyPasswords yes

その OpenSSHに "none"認証を受け入れさせる

使用可能な認証方法は、「gssapi-with-mic」、「hostbased」、「keyboard-interactive」、「none」(PermitEmptyPasswordsが有効な場合にパスワードなしのアカウントへのアクセスに使用)、「password」です。および「公開鍵」。

WinSCPとPuTTYは「なし」の認証を自動的に試行します。したがって、彼らは(空の)パスワードを要求するべきではありません。


私のソリューションの簡略化を提案してくれた@ pa4080に感謝します。

3
Martin Prikryl

一致アドレス127.0.0。* PermitEmptyPasswordsはい

これをsshd構成ファイルの先頭に置くと、OpenSSHサーバーがクラッシュし(Ubuntu 19.04)、再起動後に回復しません。これをファイルの下部に配置するのが指定されたメソッドです(ファイルの下部にあるコメント化されたセクションを参照してください)。

以下の参考文献からの引用:

Match行のすべての基準が満たされた場合、次の行のキーワードは、別のMatch行またはファイルの終わりまで、構成ファイルのグローバルセクションで設定されたキーワードを上書きします。<<

リファレンス: https://man.openbsd.org/sshd_config#AuthenticationMethods

0
D. Cole