키를 병합하거나 동일한 파일 이름을 가진 키를 처리하려면 어떻게 해야 합니까?

키를 병합하거나 동일한 파일 이름을 가진 키를 처리하려면 어떻게 해야 합니까?

서버에 로그인하기 위해 (ssh-keygen을 사용하여) id_rsa라는 키를 만들었으므로 내 .ssh 디렉토리에 id_rsa.pub 및 id_rsa가 있습니다.

이 이름을 사용하는 이유는 다른 이름을 사용하려고 하면 내 서버에서는 작동하지 않기 때문입니다(어떤 이유에서인지 로그인할 수 없습니다).

오늘 새 서버를 설정하고 다른 컴퓨터에서 키를 생성했습니다. 하지만 키 이름도 id_rsa입니다.

그렇다면 아직 사용 중인 id_rsa라는 키가 이미 있는 내 Macbook Pro(OSX)에서 동일한 키를 어떻게 사용할 수 있습니까(다른 일부 계정에 로그인하는 데 사용해야 하기 때문에 제거할 수 없습니다) 서버 )?

답변1

일반적으로 SSH 키는 서버가 아닌 클라이언트를 식별합니다(적어도 의 키에 대해서는 ~/.ssh). 권장되는 접근 방식은 (효과적으로 수행한 것처럼) 클라이언트별로 키를 생성하고 ~/.ssh/authorized_keys액세스해야 하는 서버/계정 에 모든 적절한 공개 키를 추가하는 것입니다 .

따라서 Macbook Pro에서는 새 서버에 대한 키를 추가하지 않고 일반적으로 다음을 사용하여 기존 키(Macbook에 저장됨)를 새 서버에 추가합니다.

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

이것이 작동하지 않으면,

cat ~/.ssh/id_rsa.pub

~/.ssh/authorized_keysMacbook에서 서버 끝에 복사/붙여넣기하세요.

모든 서버에서 사용해야 하는 모든 계정은 결국 다음과 같습니다 ~/.ssh/authorized_keys.

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

대부분의 편집기에서는 줄이 바뀌므로 볼 때 위와 동일하게 보이지는 않지만 각 키에 대해 한 줄만 있습니다. 각 줄은 다음과 같은 형식을 취합니다.

[options] key-type public-key comment

중요한 부분은 base64로 인코딩된 공개 키인 중간 부분입니다. 일치하는 개인 키를 가진 모든 사용자는 서버를 사용할 수 있습니다.

키 유형은 현재 일반적으로 사용되지만 ssh-rsa앞으로는 다른 유형(예: ssh-ed255519)이 더 널리 사용될 것으로 예상할 수 있습니다. 이는 키를 생성할 때 제공된 옵션에 따라 다릅니다.

#이 주석은 사람들이 키를 식별하는 데 도움을 주기 위한 것입니다. 따라서 때때로 누군가가 승인된 키 목록을 찾아보고 정보 에 근거 하여 키를 유지할지 여부에 대해 결정을 내릴 수 있습니다. 파일). 일반적으로 주석은 생성된 키에 해당하는 사용자 이름과 호스트 이름입니다(/즉/런타임 사용자 이름 ssh-keygen및 클라이언트 시스템의 호스트 이름).

선택적 옵션(위의 예에는 옵션이 없음)을 사용하면 사용자가 서버에서 수행할 수 있는 작업을 제어하거나 키를 제한할 수 있습니다(예: 특정 인증 기관의 서명을 요구함). 자세한 내용은 참조sshd맨페이지("AUTHORIZED_KEYS 파일 형식"을 검색하세요).

답변2

파일 에 다음을 추가하세요 ~/.ssh/config.

Host *
  IdentityFile ~/.ssh/id_whatever

이제 이 파일은 ssh호스트에 연결할 때 사용되도록 시도됩니다.

를 사용하는 대신 명시적으로 이름을 지정하여 특정 호스트로 제한할 수 있습니다 *.

답변3

mv id_rsa idnew_rsa;mv id_rsa.pub idnew_rsa.pub;cat idnew_rsa.pub|ssh user@host 'cat>> ~/.ssh/authorized_keys'할 것입니다.
파일 이름에는 아무것도 없고 내용만 중요합니다.
ssh -i idnew_rsa user@host

관련 정보