Como mesclar chaves ou manipular chaves com o mesmo nome de arquivo?

4

Eu criei uma chave para entrar em um servidor (usando ssh-keygen) com o nome id_rsa, e assim no meu diretório .ssh há id_rsa.pub e id_rsa.

O motivo pelo qual usei esse nome é que, quando experimentei outros nomes, eles não funcionaram com meu servidor (não consegui fazer login por algum motivo).

Eu configurei um novo servidor hoje (e gerou a chave em um computador diferente). Mas os nomes das chaves também são id_rsa.

Então, como eu uso a mesma chave no meu macbook pro (OSX), que já tem uma chave chamada id_rsa, que ainda está em uso (não consigo me livrar dela, já que preciso usá-la para logar). em alguns outros servidores)?

    
por Kaizer Sozay 03.02.2015 / 11:37

3 respostas

5

De um modo geral, as chaves SSH identificam clientes, não servidores (bem, pelo menos para as chaves em ~/.ssh ). A abordagem recomendada é gerar uma chave por cliente, como você fez de forma eficaz, e adicionar todas as chaves públicas apropriadas a ~/.ssh/authorized_keys nos servidores / contas que você precisa acessar.

Então, no seu Macbook Pro, você não adicionaria a chave do novo servidor; você adicionaria a chave existente (armazenada no MacBook) ao novo servidor, geralmente usando

ssh-copy-id <username>@<server>

Se isso não funcionar,

cat ~/.ssh/id_rsa.pub

no seu Macbook e copie / cole no final de ~/.ssh/authorized_keys no servidor.

Cada conta que você precisa usar em cada servidor terminará com ~/.ssh/authorized_keys parecendo algo como

ssh-rsa AAAAuifi4poojaixahV8thaQu3eQueex0iequ7Eephua4sai8liwiezaic8othisieseepheexaa1zohdouk5ooxas0aoN9ouFa3ejuiK2odahy8Opaen0Niech4Vaegiphagh4EileiHuchoovusu3awahmo4hooShoocoshi3zohw4ieShaivoora7ruuy7igii3UkeeNg5oph6ohN4ciepaifee8ipas9Gei4cee1SohSoo2oCh5ieta5ohQu6eu5PhoomuxoowigaeH2ophau0xo5phoosh3mah7cheD3ioph1FeeZaudiMei4eighish3deixeiceangah5peeT8EeCheipaiLoonaaPhiej0toYe6== user1@host1
ssh-rsa AAAAsaengaitoh4eiteshijee8ohFichah1chaesh4Oeroh2Chae8aich2os1akoh4Waifee5dai3roethah9oojahnietaexo0ia0xiegheixaiwo8aeshui8uZ4chooCohtei8ooMieloo0pahghaeShooth3zae7eigoSe9arei0lohpeij4aeJ3sahfahviaNiejoozeu1zooth8meibooph5IeGuun1lothiur6aleaw8shuof6fah7ooboophoo8nae6aipieshahcae4ShochohZoh4gohX7aes7aes4bo1eiNaeng7Eeghoh6Ge3Maenoh0qui1eiphahWotahGai8ohYohchuubohp3va5dohs== user2@host1
ssh-rsa AAAA3Zohquoh8UavooveiF0aGho8tokaduih4eosai4feiCoophie7ekisuoNii0raizaighahfaik6aibeviojabee1Sheifo8mae0tiecei4Bai8gaiyahvo1eememofiesai0Teyooghah6iovi1zaibie3aePaFeishie0Pheitahka0FaisieVeuceekooSoopoox7Ahhaed2oi6Faeph1airaizee7Aeg8Aiya2oongaC9ing6iGheeg8chei1ogheighieghie1Apode3shibai5eit8oa5shahDaic0shishie0ies7Aijee5ohk1aetha1Quieyafu2oa0Ahwee3mu9tae4AebeiveeFiewohj== user1@host2

As linhas serão agrupadas na maioria dos editores, por isso não parecerá muito com o acima quando visualizadas; mas há apenas uma linha por chave. Cada linha assume a forma

[options] key-type public-key comment

A parte importante disso é a seção intermediária, que é a chave pública codificada em base64. Qualquer usuário com uma chave privada correspondente será permitido no servidor.

O tipo de chave geralmente é ssh-rsa atualmente, mas você pode esperar que outros tipos se tornem mais populares no futuro (como ssh-ed255519 ). Isso depende das opções dadas quando a chave foi gerada.

O comentário está lá apenas para ajudar as pessoas a identificar as chaves, de modo que de vez em quando alguém pode passar pela lista de chaves autorizadas e tomar decisões sensatas sobre manter uma chave ou não (desabilitar uma chave é tão fácil quanto comentando a linha com um # no início do arquivo). Normalmente, o comentário é o nome de usuário e o nome de host correspondentes à chave gerada (/ i.e./ seu nome de usuário quando você executou ssh-keygen e o nome do host do computador cliente).

As opções opcionais (não há nenhuma no exemplo acima) permitem controlar o que os usuários podem fazer no servidor e / ou restringir as chaves (exigindo que elas sejam assinadas por uma autoridade de certificação específica). por exemplo). Para mais detalhes, consulte a sshd manpage (procure por "AUTHORIZED_KEYS FILE FORMAT").

    
por 03.02.2015 / 11:58
1

Adicione isso ao seu arquivo ~/.ssh/config :

Host *
  IdentityFile ~/.ssh/id_whatever

Agora, ssh tentará (também) usar esse arquivo ao se conectar a um host.

Você pode limitar isso a um determinado host, nomeando-o explicitamente em vez de usar * .

    
por 03.02.2015 / 12:00
1

mv id_rsa idnew_rsa;mv id_rsa.pub idnew_rsa.pub;cat idnew_rsa.pub|ssh user@host 'cat>> ~/.ssh/authorized_keys' serve.
Não há nada no nome do arquivo, apenas o conteúdo é importante.
ssh -i idnew_rsa user@host

    
por 03.02.2015 / 13:42