Kai*_*zay 4 osx ssh ssh-keygen
我创建了一个名为 id_rsa 的用于登录服务器的密钥(使用 ssh-keygen),因此在我的 .ssh 目录中有 id_rsa.pub 和 id_rsa。
我使用这个名称的原因是,当我尝试其他名称时,它们不适用于我的服务器(由于某种原因我无法登录)。
我今天设置了一个新服务器(并在另一台计算机上生成了密钥)。但键名也是 id_rsa。
那么我如何在我的 macbook pro (OSX) 上使用相同的密钥,它已经有一个名为 id_rsa 的密钥,该密钥仍在使用中(我无法摆脱它,因为我需要使用它来登录其他一些服务器)?
一般来说,SSH 密钥标识客户端,而不是服务器(嗯,至少对于 中的密钥~/.ssh)。推荐的方法是为每个客户端生成一个密钥,正如您已经有效地完成的那样,并将所有适当的公钥添加到~/.ssh/authorized_keys您需要访问的服务器/帐户上。
因此,在您的 Macbook Pro 上,您不会添加新服务器的密钥,而是将现有密钥(存储在 Macbook 上)添加到新服务器,通常使用
ssh-copy-id <username>@<server>
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,
cat ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
在您的 Macbook 上复制/粘贴~/.ssh/authorized_keys到服务器的末尾。
您需要在每台服务器上使用的每个帐户最终都会~/.ssh/authorized_keys看起来像
ssh-rsa AAAAuifi4poojaixahV8thaQu3eQueex0iequ7Eephua4sai8liwiezaic8othisieseepheexaa1zohdouk5ooxas0aoN9ouFa3ejuiK2odahy8Opaen0Niech4Vaegiphagh4EileiHuchoovusu3awahmo4hooShoocoshi3zohw4ieShaivoora7ruuy7igii3UkeeNg5oph6ohN4ciepaifee8ipas9Gei4cee1SohSoo2oCh5ieta5ohQu6eu5PhoomuxoowigaeH2ophau0xo5phoosh3mah7cheD3ioph1FeeZaudiMei4eighish3deixeiceangah5peeT8EeCheipaiLoonaaPhiej0toYe6== user1@host1
ssh-rsa AAAAsaengaitoh4eiteshijee8ohFichah1chaesh4Oeroh2Chae8aich2os1akoh4Waifee5dai3roethah9oojahnietaexo0ia0xiegheixaiwo8aeshui8uZ4chooCohtei8ooMieloo0pahghaeShooth3zae7eigoSe9arei0lohpeij4aeJ3sahfahviaNiejoozeu1zooth8meibooph5IeGuun1lothiur6aleaw8shuof6fah7ooboophoo8nae6aipieshahcae4ShochohZoh4gohX7aes7aes4bo1eiNaeng7Eeghoh6Ge3Maenoh0qui1eiphahWotahGai8ohYohchuubohp3va5dohs== user2@host1
ssh-rsa AAAA3Zohquoh8UavooveiF0aGho8tokaduih4eosai4feiCoophie7ekisuoNii0raizaighahfaik6aibeviojabee1Sheifo8mae0tiecei4Bai8gaiyahvo1eememofiesai0Teyooghah6iovi1zaibie3aePaFeishie0Pheitahka0FaisieVeuceekooSoopoox7Ahhaed2oi6Faeph1airaizee7Aeg8Aiya2oongaC9ing6iGheeg8chei1ogheighieghie1Apode3shibai5eit8oa5shahDaic0shishie0ies7Aijee5ohk1aetha1Quieyafu2oa0Ahwee3mu9tae4AebeiveeFiewohj== user1@host2
Run Code Online (Sandbox Code Playgroud)
这些行会在大多数编辑器中换行,因此在查看时不会像上面那样;但每个键只有一行。每一行都采用以下形式
[options] key-type public-key comment
Run Code Online (Sandbox Code Playgroud)
其中重要的部分是中间部分,它是 base64 编码的公钥。任何具有匹配私钥的用户都将被允许在服务器上。
键类型通常是ssh-rsa现在,但您可以期望看到其他类型在未来变得更流行(例如ssh-ed255519)。这取决于生成密钥时给出的选项。
注释仅用于帮助人们识别密钥,以便偶尔有人可以查看授权密钥列表并就是否保留密钥做出明智的决定(禁用密钥就像注释行一样简单以#文件开头的a结尾)。通常,注释是与生成的密钥对应的用户名和主机名(/即您运行时的用户名ssh-keygen和客户端计算机的主机名)。
可选选项(上面的示例中没有任何选项)允许您控制允许用户在服务器上执行的操作,和/或限制密钥(例如,要求它们由特定的证书颁发机构签名) . 有关详细信息,请参阅该sshd手册页(搜索“AUTHORIZED_KEYS的文件格式”)。