web-dev-qa-db-ja.com

SSHキーを他のマシンに転送するにはどうすればいいですか?

H1とH2の2台のマシンにアカウントがあります。私はH1にSSHキーを作成し、それをS1にインストールしました。 H1からS1にSSHで移動できます。 H2からも同じようにしたいです。 H1で生成されたsshキーをH2にインストールする方法

39
Bruce

編集: 両方のマシンを所有している場合は、秘密鍵を共有できます。しかし、この解決法は、盗まれたノートブックの場合やあなたが所有していないマシンにとっては安全ではありません

同じ秘密鍵を使用して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にインストールすることです。 with ssh-copy-id util。この場合、2組のキーがあります。 1つはH1-S1ログイン用、もう1つはH2-S1ログイン用です。 S1で承認された2つの公開鍵があります。そして、あなたはそれらのどちらかまたは両方を取り消すことができるでしょう(例えば、あなたがノートブックを盗まれたとき、またはマシンの所有者があなたのアカウントを無効にしてあなたのすべてのファイルを再利用することに決めたとき).

25
osgx

ssh-copy-idを使う

概要

ssh-copy-id [-i [identityファイル]] [user @] machine

説明

ssh-copy-idは、sshを使用してリモートマシンにログインし、そのマシンの〜/ .ssh/authorized_keysファイルに指定されたIDファイルを追加するスクリプトです。

25
Mu Qiao

2つの秘密キーを使用する

H1をセットアップしたときと同じプロセス(ただしではなく同じ秘密キー)を使用してH2をセットアップします。

  • 他のマシンから秘密鍵をコピーする正当な理由はありません。 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」)からサーバーにログインしたい。

それを行う正しい方法は何ですか?

  • 両方の場所から同じパスワードで簡単にログインできると思います。誰もが公開鍵認証はパスワードよりもはるかに優れていると言うため、それは正しい方法ではありません。 (a)
  • ラップトップからワークステーションに秘密鍵を簡単にコピーできると思います。秘密鍵はクライアントマシンを離れることは絶対にないと言われるため、これは正しい方法ではありません。

人々は、サーバー上の1つのアカウントが単一のユーザー名と、もちろん単一の承認されたパスワードを持っていることを頭に打ち込みました。

Sshのような公開鍵システムはパスワードシステムよりも優れています:サーバー上の1つのアカウントには単一のユーザー名と任意の数の許可された公開鍵があり、それらは~/.ssh/authorized_keysファイルにリストされています。

詳細 )。

9
David Cary

Ssh-copy-idがあなたに代わって仕事をしますか? http://linux.die.net/man/1/ssh-copy-id

0
Alex Wilson