一部のSSHキーを使用して、自分のローカルネットワーク(192.168.1。*)から(一般的にアクセス可能な)SSHサーバーにログインできるようにしたいが、ローカルネットワークの外部でキーを使用できるようにしたくありません。
外部アクセスに別のキーを使用したい(どちらの場合も同じユーザー)。
SSHでそのようなことは可能ですか?
ベストアンサー1
はい。
~/.ssh/authorized_keys
サーバー上のファイルでは、各項目は次のようになります。
ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment
(または類似)
オプションを含めることができるオプションの最初の列があります。これについてはマニュアルに記載されていますsshd
。
オプションの1つは
from="pattern-list"
公開鍵認証に加えて、リモートホストの正式名またはIPアドレスをコンマ区切りのパターンリストに表示する必要があることを指定します。モードの詳細については、ssh_config(5)のモードを参照してください。
ホスト名またはアドレスに適用できるワイルドカードの一致に加えて、fromセクションでは、CIDRアドレス/マスク長表記を使用してIPアドレスを一致させることもできます。
このオプションの目的は、オプションでセキュリティを強化することです。公開鍵認証自体は、ネットワーク、ネームサーバー、またはそのいずれか(鍵を除く)を信頼しません。ただし、誰かが何らかの方法で鍵を盗むと、鍵を介して侵入者がどこからでもログインできます。世界に。この追加オプションを使用すると、盗まれたキーを使用することがより困難になります(キーに加えてネームサーバーおよび/またはルーターも破損する必要があります)。
~/.ssh/authorized_keys
これは変更可能でなければならないことを意味します。
ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment
到着
from="pattern" ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment
pattern
パブリックDNS名、IPアドレス、または一部のネットワークブロックなど、接続しようとしているクライアントホストと一致するパターンはどこにありますか?
from="192.168.1.0/24" ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment
(これにより、ネットワーク上のホストでのみこのキーを使用できます192.168.1.*
。)