ありがとうございます。しかし、私は質問を正しく伝えていないようです。問題をもう一度説明します。キー名が「ssh-rsa AAAAB3Nxyz user@laptop」であるとしましょう。現在の構成は次のとおりです。
私のラップトップ~/.ssh/id_rsa.pub には
-ssh-rsa AAAAB3Nxyz user@laptop
On が含まれています。サーバーB~/.ssh/id_rsa.pub には
-ssh-rsa AAAAB3Nxyz user@laptop
On が含まれています。サーバーA~/.ssh/authorized_keys には
-ssh-rsa AAAAB3Nxyz user@laptop が含まれています。
今ラップトップから(サーバーAへ)SSH経由パスワードプロンプトなし。ただし、サーバーBから(サーバーAに)SSHを接続すると、次の結果が表示されます。
「~/.ssh/id_rsa」キーのパスワードを入力してください。
パスワードを入力するとログインできます。ただし、サーバーBにパスワードプロンプトが表示されたくありません。なぜ行動にこの違いがあるのか理解できません。なぜサーバーBはパスワードプロンプトなしでサーバーAにアクセスできませんが、同じキーを使用して私のラップトップはパスワードプロンプトなしでサーバーAにアクセスできますか?すべての権限を確認しましたが、問題はありません。これがはっきりしていることを願っています。ありがとうございます。
ベストアンサー1
ディレクトリ~/.ssh
全体をコピーする必要はなく、鍵の公開部分の内容だけをコピーするだけです。パスワード認証が有効になっていると仮定すると、最も簡単な方法は次のとおりです。
user@darkstar ~ $ ssh-copy-id remoteusername@remotehostname
SSHにすべてを正しい場所に配置させます。
この操作を手動で実行する必要がある場合、またはパスワード認証がなく、システム管理者がキーを適切な場所に配置する必要がある場合は、ファイルをコピーする必要があります~/.ssh/id_rsa.pub
。リモートシステムで~/.ssh/authorized_keys
そのユーザーアカウントのファイルに既に存在するコンテンツを追加するだけです。簡単なものでcat id_rsa.pub >> ~/.ssh/authorized_keys
十分です。
最後に、両方のシステムの秘密鍵、ファイル、およびauthorized_keys
ディレクトリに対する権限が~/.ssh
正しく設定されていることを確認する必要があります。~/.ssh
ディレクトリは0700に設定し、その中のファイルは600に設定する必要があります。
問題を解決する、リモートシステムにログインし、既存の~/.ssh
ディレクトリの名前を別のディレクトリに変更し、正しく設定された権限で再作成してログアウトしてから、上記のディレクトリをssh-copy-id
使用します。これで、キーとそれに関連するパスワードを使用してSSHに接続できます。
更新された質問を編集キーペアの概念が欠けているようです。家の南京錠を考えてみてください。 1つの鍵ですべての鍵を開くには、内部に同じコードの組み合わせが必要です。
特定の組み合わせのid_rsa.pubファイルは、リモートシステムのauthorized_keysファイルに移動されます。このキーが機能するには、接続するコンピューターに対応する秘密キーが必要です。複数の鍵を別のファイルに配置し、-i
SSH(など)オプションを使用して接続する秘密鍵を指定することで、複数の鍵を処理できます。
したがって、あなたの情報を使用してノートブックから秘密鍵ファイルをインポートし(おそらく~/.ssh/id_rsa
)サーバーBに入れる必要があります~/.ssh/laptop_id_rsa
。サーバーBからサーバーAにsshを使用できますssh -i ~/.ssh/laptop_id_rsa user@serverA
。 AからBに移動するには、Aに秘密鍵を挿入する手順を繰り返します。または、サーバーBをジャンプホスト/トンネルとして使用できるため、正しいオプションを使用して接続すると、ノートブックからサーバーAに直接SSH経由で接続できます。これにより、秘密鍵ファイルをノートブックにのみアーカイブできます(セキュリティに適しています。特にパスワードのない鍵を使用するときにコピーが浮かぶことは望ましくありません!)。
~/.ssh/config
適切なホスト名、ポート、ユーザー名、IDファイルなどを簡単に実行してssh serverA
使用できるようにファイルを設定することもできます。