SSHキーを別のマシンに転送する方法は?


42

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


2
以来ssh-copy-id多くのフールプルーフ(既存のキーまたは誤ってコピーの無上書きされ、民間の代わりに、キーの公共の少ない既知の解決の鍵)が、受け入れ答えとしてそれらの答えの一つを受け入れることを検討してください。
agtoever

回答:


28

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

同じ秘密鍵を使用してH2からS1にログインできるようにする場合は、秘密鍵をH1からH2にコピーできます。H1で次のコマンドを実行します。

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

警告!これにより、H2で所有していたすべての秘密キーが削除および置換されます。

より良い方法は、H2(ssh-keygen)で新しい秘密鍵を生成し、ssh-copy-idutilを使用して公開部分をS1にインストールすることです。このより安全なケースでは、2セットのキーがあります。1つはH1-S1ログイン用で、もう1つはH2-S1ログイン用です。S1で承認される2つの公開キーがあります。そして、それらのいずれかまたは両方を取り消すことができます(たとえば、ノートブックが盗まれたとき、またはマシンの所有者がアカウントを無効にし、すべてのファイルを再利用することにしたとき)。


8
秘密鍵をコピーすることは、実際にはお勧めできません。複数の場所で、単一のキー持つ1になり、それはより脆弱、2.あなたはすべての場所のコントロールを失ったことが上昇のリスクを、3は一つだけの場所からアクセス不能にあなたを許可していません。セキュリティの観点から、Mu Qiaoのソリューションであるすべての場所で新しいキーペアを生成する必要があります。
パブーク

27

つかいます ssh-copy-id

あらすじ

ssh-copy-id [-i [identity_file]] [user @] machine

記述

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


1
@ H2からS1にsshを実行したい。秘密鍵と公開鍵をH1からH2に転送してインストールしたい。これでいいですか?
ブルース

3
@Bruceいいえ、h2でキーを再生成し、そのコマンドを使用してキーをコピーする必要があります。別のアプローチは、h1とh2にホームディレクトリを共有させることです。
ムー橋

9

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

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

  • 他のマシンから秘密鍵をコピーする正当な理由はありません。H2で新しい秘密鍵をまだ生成していない場合は、今すぐ生成します。対応する公開鍵も生成します。H2のターミナルで

タイプ: ssh-keygen -t rsa

  • H2の公開キーをサーバーにコピーします。H2のターミナルで

タイプ: ssh-copy-id username@S1.net

(ただし、S1とS1のホスト名で実際のユーザー名を使用し、後でS1が要求したときにパスワードを入力します)。

これにより、ワークステーションの公開鍵が~/.ssh/authorized_keysサーバー上のそのユーザーのファイルにインストールされます。

  • 手順3はありません。これからは、H2からS1にログインし、H1からS1にログインすることもできます。

詳細

あなたが本当に求めているのは

  • サーバーがあります(「S1」)
  • 個人のラップトップ(「H1」)からサーバーにログインします
  • また、ワークステーション(「H2」)からサーバーにログインしたい。

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

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

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

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

詳細)。



0

ssh-copy-idはあなたのために仕事をしますか:http : //linux.die.net/man/1/ssh-copy-id


@ H2からS1にsshを実行したい。秘密鍵と公開鍵をH1からH2に転送してインストールしたい。これでいいですか?
ブルース

2
ssh-copy-idを使用してS1またはH1(現在キーを持っている)のいずれかにログインしている場合、公開キー(プライベートではない)をH2に転送できます。一般に、秘密鍵がインストールされるマシンの数を制限することが最善です。紛失を防ぐために、いくつかの安全なマシンに保管するようにしてください。

秘密鍵をH2にコピーするにはどうすればよいですか?
ブルース

0

あるコンピューターから別のコンピューターへのSSHキーのシフト用。H1(古いマシン)の〜/ .sshからフォルダー全体を新しいマシンH2の〜/ .sshコンテンツフォルダーにコピーするだけです。

今すぐ試してください:

ssh ubuntu@13.123.43.26(S1 IP)

ほとんどの場合、その実行を修正するためのアクセス許可の警告が表示されます。

chmod 400〜/ .ssh / id_rsa

再び:

ssh ubuntu@13.123.43.26(S1 IP)

これで問題なく動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.