ssh-copy-id 逆順

ssh-copy-id 逆順

ssh-copy-idリモート マシンのユーザー名とパスワードがわかっている場合、公開 SSH キーを別のマシンの承認済みキーに格納する方法を理解しています。

逆はどうすれば可能でしょうか? リモート マシンの公開キー (公開キーなのでパスワードは不要) を取得し、それを自分の承認キー (これも自分のキーなのでパスワードは不要) に格納します。

答え1

ssh ${remote_host} cat .ssh/id_rsa.pub | tee -a $HOME/.ssh/authorized_keys

答え2

ここでは 2 つの異なるタイプの SSH キーが混在しています。構造は似ていますが、目的はまったく異なります。

公開鍵は、ユーザー・キー: それは公共つまり、秘密にしておく必要はない、それは出版された自動的に行うことは絶対にできません。Web ページにそれを掲載したい場合は、もちろん可能です。ただし、自分で行う必要があります。

一方、マシンごとのキーは、ホストキーこれらはログイン時に自動的に交換されるので、出版されたただし、ホスト キーはファイルには保存されません。代わりにauthorized_keysに保存されますknown_hosts。あるマシンのホスト キーを取得しても、誰にもアクセス権が付与されるわけではありません。SSH クライアントは、接続時にマシンが以前と同じであることを確認できるだけです。

システム管理者がHostbasedAuthenticationで有効にすることを選択し/etc/ssh/sshd_config、リモートホストのホストキーがシステム全体のファイルにある場合、リモートホストの名前を に追加するか、またはを許可すること/etc/ssh/ssh_known_hostsができます。/etc/hosts.equiv/etc/ssh/shosts.equivみんなリモート ホストの ユーザーは、パスワードを入力せずに、ローカル ホストの対応するアカウントにログオンできます。システム管理者が も に設定した場合IgnoreRhosts、一般ユーザーは同様に、リモート ホストのホスト キーを に、ユーザー名@ホスト名を または に設定することでno、特定のリモート ホストの特定のユーザーがパスワードなしでローカル ホストの自分のアカウントにアクセスできるようにすることができます。ただし、この認証方法はデフォルトでは無効になっています。~/.ssh/known_hosts~/.rhosts~/.shosts

(なぜ~/.shostsと のような 2 つのファイル~/.rhostsが必要なのでしょうか。これは、.rhostsファイルが古い暗号化されていないrsh/ rlogin/ rexec/rcpツールで使用され、SSH はもともとその代替として設計されたためです。とツールの両方を介したアクセスを許可する場合は.rhostsまたは を使用し、 SSH アクセスのみを許可する場合は または を使用します。)hosts.equivrshssh.shostsshosts.equiv

答え3

ssh-keyscan を使用するか、不明なホストに接続するときに自動的にキーを known_hosts に追加します。手動で行う場合は、以下のコマンドを使用できます。

ssh-keyscan hostname >> ~/.ssh/known_hosts

関連情報