SSHで接続したいホームサーバーのキーのセットを生成したいので、_ssh-keygen -t rsa
_を実行しますが、メッセージが表示されます:id_rsa already exists. Overwrite (y/n)?
まあ、今は大学のサーバーにSSHで接続するために使用しているキーを上書きしたくないので、切り替えるたびにジャンクをすべてやり直さなければならないのは大変です。キーを追加する簡単な方法はありますか?
cat
コマンドの使用について何かを提案するチュートリアル(見つけられない)を試してみましたが、かなり迷っています。解決策は非常に単純なもののようですが、私は見ていません。
私が正しく覚えている場合は、Cygwinをアンインストールし、代わりにコマンドラインを使用してこの問題を修正しました。
これは、.ssh
ディレクトリの下のホームディレクトリにある構成ファイルを使用して実現できます。
通常どおりにキーを生成します。
ssh-keygen -t rsa
デフォルトを上書きしないでください(通常はid_rsa
)。代わりに、新しい名前を作成します。これにより、キーを使用して別のファイルが作成されます。
〜/ .sshに、次の内容のconfig
ファイルを作成します。
Host * (asterisk for all hosts or add specific Host)
AddKeysToAgent yes
UseKeychain yes
IdentityFile <key> (e.g. ~/.ssh/yourKey)
キーがキーチェーンに追加され、使用できるようになりました!
-
構成で複数のIdentityFilesを使用できます(Macの例):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa_private_server
IdentityFile ~/.ssh/id_rsa_github
IdentityFile ~/.ssh/id_rsa_work_server
両方のサーバーで同じ公開鍵を使用できます。それを実行したくない場合は、_~/.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)
として起動しなくても使用できます。
私はあなたと同じ問題を抱えていて、それを解決しました。
ターミナルでは:
"キーを保存するファイルを入力(/home/you/.ssh/id_rsa):"
打つ代わりに Enter または/home/you/.ssh/id_rsa
、 あなたが書く /home/you/.ssh/id_rsa1
。
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"