web-dev-qa-db-ja.com

上書きせずにRSAキーを追加する

SSHで接続したいホームサーバーのキーのセットを生成したいので、_ssh-keygen -t rsa_を実行しますが、メッセージが表示されます:id_rsa already exists. Overwrite (y/n)?

まあ、今は大学のサーバーにSSHで接続するために使用しているキーを上書きしたくないので、切り替えるたびにジャンクをすべてやり直さなければならないのは大変です。キーを追加する簡単な方法はありますか?

catコマンドの使用について何かを提案するチュートリアル(見つけられない)を試してみましたが、かなり迷っています。解決策は非常に単純なもののようですが、私は見ていません。

16
itsmichaelwang

私が正しく覚えている場合は、Cygwinをアンインストールし、代わりにコマンドラインを使用してこの問題を修正しました。

1
itsmichaelwang

これは、.sshディレクトリの下のホームディレクトリにある構成ファイルを使用して実現できます。

  1. 通常どおりにキーを生成します。

    ssh-keygen -t rsa
    
  2. デフォルトを上書きしないでください(通常はid_rsa)。代わりに、新しい名前を作成します。これにより、キーを使用して別のファイルが作成されます。

  3. 〜/ .sshに、次の内容のconfigファイルを作成します。

    Host * (asterisk for all hosts or add specific Host)
      AddKeysToAgent yes
      UseKeychain yes
      IdentityFile <key> (e.g. ~/.ssh/yourKey)
    
  4. キーがキーチェーンに追加され、使用できるようになりました!

-

構成で複数のIdentityFilesを使用できます(Macの例):

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa_private_server
  IdentityFile ~/.ssh/id_rsa_github
  IdentityFile ~/.ssh/id_rsa_work_server
12
GreensterRox

両方のサーバーで同じ公開鍵を使用できます。それを実行したくない場合は、_~/.ssh/id_rsa_がその前にプロンプ​​トを表示したときに_ssh-keygen_とは異なる場所を指定し、エージェントで使用します。

_% ssh-agent sh  # Replace with your favourite Shell.
$ ssh-add ~/.ssh/id_rsa_2
$ ssh somewhere
$ exit
%
_

_ssh-agent_は、新しいシェルをeval $(ssh-agent)として起動しなくても使用できます。

9
Ry-

私はあなたと同じ問題を抱えていて、それを解決しました。

ターミナルでは:

"キーを保存するファイルを入力(/home/you/.ssh/id_rsa):"

打つ代わりに Enter または/home/you/.ssh/id_rsa、 あなたが書く /home/you/.ssh/id_rsa1

1
maihuynhtruc

minitechの提案に従って、両方のサーバーで同じSSH公開鍵を使用できます。これを行うには、テキストエディターで~/.ssh/id_rsa.pubファイルを開き、新しいスペースや改行を追加せずにファイルの内容を正確にコピーして、接続するサーバーに追加します。サーバー上のユーザー名がIPアドレス123.45.56.78の「user」である場合は、コマンド「ssh-copy-id [email protected]」を使用するか、次のコマンドを使用できます。

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
0
user3291025