2014-06-24 87 views
7

我想生成一組密鑰的家庭服務器,我想通過SSH進入的,所以我做ssh-keygen -t rsa,但後來我得到一個消息:id_rsa already exists. Overwrite (y/n)?添加RSA密鑰,而不會覆蓋

好吧,我不我不想重寫,因爲現在我用我的密鑰進入我大學的服務器,並且每次我想切換時都必須再次做所有的垃圾,這將是一件痛苦的事情。有沒有簡單的方法來追加鍵?我嘗試了一個教程(我找不到),這個教程提供了關於使用cat命令的一些建議,但我很迷茫。看起來解決方案非常簡單,我只是沒有看到。

回答

1

如果我沒有記錯,我通過卸載Cygwin並使用命令行來解決此問題。

6

您可以在兩臺服務器上使用相同的公鑰。如果你不想這樣做,只需指定一個不同的位置~/.ssh/id_rsassh-keygen之前提示您,並與代理使用它:

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

ssh-agent也可以不啓動新的外殼爲eval $(ssh-agent)使用。

+0

在這種情況下,我試圖從我的主機(Windows 7,通過Cygwin,嘗試複製到Debian)執行以下操作:'ssh-copy-id -i「C:/ Users /名字姓氏/ .ssh/id_rsa.pub「用戶@主機名」,但它對我生氣並說'錯誤:無法打開ID文件'C:/ Users/FirstName' – itsmichaelwang

+0

@Zapurdead:嘗試轉義空間並使用單個引號:''C:/ Users/FirstName \ LastName/.ssh/id_rsa.pub'。 (單引號並不是必須的,但也可以不加雙引號''''ssh-copy-id -i〜/ .ssh/id_rsa.pub user @ hostname',偶數。 – Ryan

+0

我試了第二個,我得到'錯誤:無法打開ID文件'/ home/FirstName''。它是否認爲我的Windows電腦是Linux? – itsmichaelwang

0

你可以像建議的那樣做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 & &貓>>的〜/ .ssh/authorized_keys的」

2

您可以通過.ssh目錄下使用配置文件在你的home目錄中實現這一目標:

  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(例如蘋果):

Host * 
    AddKeysToAgent yes 
    UseKeychain yes 
    IdentityFile ~/.ssh/id_rsa_private_server 
    IdentityFile ~/.ssh/id_rsa_github 
    IdentityFile ~/.ssh/id_rsa_work_server 
+0

這是否適用於多個ssh密鑰(識別文件)? –

+0

對我有用:-)我有三個不同的ssh密鑰用於三臺獨立的服務器,我可以使用標準的'ssh myname @ myserver syntax'無縫連接到三臺服務器中的任何一臺。如果您使用ssh -v(詳細),您可以看到它如何嘗試.ssh文件夾中的所有身份文件。 – GreensterRox

+0

那麼,您爲「IdentityFile」字段指定了哪一個? –

0

我有這個問題,因爲你。我已經解決了它。
在終端,
「輸入文件,在其中保存密鑰(/home/you/.ssh/id_rsa):」
而是按Enter鍵,或寫/home/you/.ssh/id_rsa
你寫的/家/你/。ssh/id_rsa1