2つのホスト間でパスワードのないキーベースのログインを有効にする必要がありますが、これが実際にどのように機能するかを理解できません。だから私の概念を明確にしてくれる操舵を探しています。
私host1
としてログインしていますuser1
。ここでリモートで実行する予定ですhost2
。
[user1@host1 ~]$ ssh user2@host2 pwd
The authenticity of host 'host2 (***.***.***.*)' can't be established.
ECDSA key fingerprint is SHA256:******************.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'host2,***.***.***.*' (ECDSA) to the list of known hosts.
user2@host2's password:
ここで私が混乱しているのは、パスワードのないログインを有効にすることですuser2@host2
。
- を使用して生成された
user1
公開鍵[~/.ssh/id_*.pub
]を以下の認証鍵に追加する必要がありますか?またはhost1
host2
user1
ssh/authorized_keys
host1
user1
- で生成された
user2
公開鍵[]を~/.ssh/id_*.pub
次のhost1
認証鍵に追加する必要がありますかhost2
user1
ssh/authorized_keys'
?または user2
生成された公開鍵[~/.ssh/id_*.pub
]を以下の認証鍵に追加する必要がありますかhost1
?またはhost2
user2
ssh/authorized_keys'
あまりにも基本的か混乱している質問であれば申し訳ありません。私が混乱している部分を最善を尽くして説明します。ティア!
答え1
SSH公開鍵(パスワードなし)を使用してログインすると、何が起こっているのかを理解しています。
SSHに使用する秘密鍵と公開鍵のペアを生成します。たとえば、ssh-keygenコマンドユーティリティを使用します。
ソースPCからSSH接続を開始するユーザーのみがアクセスできるソースPCのファイルに秘密鍵を配置します。あなたの場合は、ホスト1の~user1/.ssh/id_ecdsaのようなファイルに入れることができます。
ターゲットPCにいることを望むユーザーがアクセスできるターゲットPCのファイルに公開キーを入れます。あなたの場合は、ホスト2の~user2/.ssh/authorized_keysと同じファイルに入れます。
注:キーペアとユーザー間の唯一の接続は、そのユーザーの〜/ .sshディレクトリにキーを配置することです。キー自体は特定のユーザーと機能的に関連付けられていません。ただし、多くの場合、authorized_keys/id_*.pubファイル行の末尾にあるコメントを見ると、キーが特定のユーザーにリンクされているという印象を与えることができます。
注:キーペアは、ユーティリティを使用できる任意の場所で生成できます。ペアはソースまたはターゲットホストで作成する必要はありません。
注:これは、パスワードなしの認証が有効になっている場合のデフォルト設定です。