web-dev-qa-db-ja.com

OpenSSH Linuxサーバーでタイプed25519のユーザーIDキーのみを受け入れる方法は?

OpenSSHの最新バージョン*を実行しているLinuxサーバーにSSH/SFTP経由でログインするときに、すべてのユーザーがed25519タイプのキーのみを使用するように強制したい。

SSHキーを制御する一般的な理由には、次のものがあります。

多くの場合、SSHキーは、IDおよびアクセス管理の計画、実装、および監査において完全に見過ごされてきました。ユーザーは、監視および制御なしでキーを作成およびインストールできました。これは、企業のアクセスポリシーおよび危険なバックドアの違反につながりました。

情報セキュリティは、システムとデータへのアクセスを誰に与えるかを制御することから始まります。アクセスを制御できない場合、セキュリティ、機密性、完全性、および継続的な運用の保証はありません。

ソース: https://www.ssh.com/iam/ssh-key-management/

私は完全なキー管理の実装を達成しようとはしていません。また、ユーザーが自分のSSHキーを管理する機能(キーの追加、削除、変更を含む)を削除したくありません。私のみの目​​的は、使用されるキーのタイプがed25519であることを義務付けることです。

上記のユーザー権限を維持しながら、この設定を維持しながら、これをどのように達成できますか?

AuthorizedKeysFile  .ssh/authorized_keys

このサーバーで使用している主な(デフォルト以外の)sshd_config設定には、次のものがあります。

The only Host key enabled:
HostKey /etc/ssh/ssh_Host_ed25519_key

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
AuthorizedKeysFile  .ssh/authorized_keys
KexAlgorithms [email protected]
MACs [email protected]
Ciphers [email protected]
AllowUsers user@Host ...

ただし、これらの設定を使用しても、ユーザーは古いユーザーIDキータイプを選択して、それを使用してログインできます。私の唯一の目的は、ed25519ユーザーIDキーを使用しない限り、ユーザーがアクセスできないようにすることです。どうやって?

*実際に実行中:OpenSSH_8.1p1、OpenSSL 1.1.1d

1
MountainX

https://unix.stackexchange.com/questions/549610/limit-sshd-to-use-only-ssh-ed25519-keys-to-authenticate によると

質問:

サーバーがssh-rsaとssh-ed25519を受け入れる現時点で、認証にed25519鍵のみを受け入れるようにubuntu 18.04上のsshdを構成しようとしています。それを達成するためのアイデアは?ありがとう!

回答:

PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01 @ openssh.com、ssh-ed25519が私のために働いた。

これも私にとってはうまくいきました。/etc/ssh/sshd_configを編集して、次の設定を追加しました。

PubkeyAcceptedKeyTypes [email protected],ssh-ed25519
2
MountainX
  1. OpenSSHは ない あなたが説明することを行うための組み込み機能を持っています(国連host pubkeyアルゴリズムを制限できるクライアントのように)-I did manページを確認すると、_how_Iがわかりません- だがまたは、AuthorizedKeysCommandを使用して構築することもできます-(通常の)ファイルから不要なキーをgrepまたはsedするだけです。 6.8(2015-03リリース)より前のバージョンで動作するFWIW。これは、場合によっては問題になるかもしれませんが、多くの場合はうまくいきません。

  2. しかし、これはあなたの理由としてあなたが説明したことを達成するために何もしません、それは私が疑わしい、または少なくともこれがあなたの本当の理由ではなく、あなたは私たち全員をオンにしているだけです。

1