
H1 と H2 の 2 台のマシンにアカウントがあります。H1 で SSH キーを作成し、S1 にインストールしました。これで、H1 から S1 に SSH 接続できるようになりました。H2 からも同じ操作を行いたいのですが、H1 で生成された SSH キーを H2 にインストールするにはどうすればよいですか?
答え1
編集済み:両方のマシンを所有している場合は、秘密鍵を共有できます。しかしこの解決策は安全ではないノートパソコンが盗まれた場合や、所有していないマシンの場合に使用します。
同じ秘密鍵を使用して H2 から S1 にログインできるようにするには、秘密鍵を H1 から H2 にコピーします。H1 にいるときに、次のコマンドを実行します。
H1$ ssh H2 mkdir ~/.ssh
H1$ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/
警告! これにより、H2 で保持していた秘密キーがすべて削除され、置き換えられます。
もっといい方法H2(ssh-keygen
)をS1にインストールし、ssh-copy-id
util。このより安全なケースでは、2 セットのキーがあります。1 つは H1-S1 ログイン用、もう 1 つは H2-S1 ログイン用です。S1 で承認される公開キーは 2 つあります。また、いずれかまたは両方を取り消すことができます (たとえば、ノートブックが盗まれた場合や、マシンの所有者がアカウントを無効にしてすべてのファイルを再利用することにした場合など)。
答え2
使用ssh-copy-id
概要
ssh-copy-id [-i [identity_file]] [user@]machine
説明
ssh-copy-id は、ssh を使用してリモート マシンにログインし、指定された ID ファイルをそのマシンの ~/.ssh/authorized_keys ファイルに追加するスクリプトです。
答え3
2つの秘密鍵を使用する
同じ手順でH2を設定します(ただしないH1 を設定したときと同じ秘密鍵を使用します。
- 他のマシンから秘密鍵をコピーする理由はありません。H2 で新しい秘密鍵をまだ生成していない場合は、今すぐ生成してください。また、対応する公開鍵も生成してください。H2 のターミナルで、
タイプ:ssh-keygen -t rsa
- H2の公開鍵をサーバーにコピーします。H2のターミナルで、
タイプ:ssh-copy-id [email protected]
(ただし、S1 の実際のユーザー名と S1 のホスト名を使用し、後で S1 でパスワードを求められた場合はパスワードを入力します)。
これにより、ワークステーションの公開キーが~/.ssh/authorized_keys
サーバー上のそのユーザーのファイルにインストールされます。
- ステップ 3 はありません。今後は、H2 から S1 にログインすることも、H1 から S1 にログインすることもできます。
詳細
あなたが本当に尋ねているのは
- サーバー(「S1」)があります
- 私は自分のラップトップ(「H1」)からサーバーにログインします
- また、ワークステーション (「H2」) からサーバーにログインしたいと考えています。
それを実行する正しい方法は何ですか?
- 両方の場所から同じパスワードでログインするだけでよいと思います。公開鍵認証はパスワードよりもはるかに優れていると誰もが言っているので、これは正しい方法ではないでしょう。(ア)
- 秘密鍵をラップトップからワークステーションにコピーするだけでよいと思います。秘密鍵はクライアント マシンから出るべきではないと誰もが言っているので、これは正しい方法ではありません。
サーバー上の 1 つのアカウントには 1 つのユーザー名と、当然ながら 1 つの承認済みパスワードがあるということを、人々はよく理解しています。
sshのような公開鍵システムはパスワードシステムよりも優れています。サーバー上の1つのアカウントには1つのユーザー名があり、任意の数の承認された公開鍵、それらはすべて~/.ssh/authorized_keys
ファイルにリストされています。
(詳細はこちら)。