한 명의 사용자를위한 여러 공개 키


55

이 질문은 SSH 공개 키 인증 과 유사합니다. 하나의 공개 키를 여러 사용자가 사용할 수 있습니까? 그러나 그것은 다른 길입니다.

ssh를 사용하여 실험 중이므로 모든 ssh 서버가 귀하의 답변에 작동합니다.

동일한 사용자에게 여러 개의 공개 키를 연결할 수 있습니까? 그렇게하면 어떤 이점이 있습니까? 또한 사용되는 다른 키에 대해 다른 홈 디렉토리를 설정할 수 있습니까 (모두 동일한 사용자에 대한 링크)?

확실하지 않은 경우 알려주십시오.

감사.

답변:


80

원하는만큼 키를 가질 수 있습니다. 어쨌든 개인 용도, 업무 용도 등 다른 영역에 대해 별도의 개인 / 공개 키 세트를 사용하는 것이 좋습니다.

먼저 집과 직장을위한 두 개의 별도 키 쌍을 생성하십시오.

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

다음으로, ~/.ssh/config파일에 항목을 추가하여 연결하는 서버를 기반으로 사용할 키를 선택하십시오.

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

다음으로, 당신의 내용을 추가 id_rsa.work.pub로를 ~/.ssh/authorized_keys작업 기계에, 및 홈 시스템에서 홈 키에 대해 동일한 작업을 수행.

그런 다음 홈 서버에 연결할 때 키 중 하나를 사용하고 작업 서버는 다른 키를 사용합니다.

ssh-agent암호를 입력하지 않아도되므로 두 키를 모두 추가 해야 할 수도 있습니다.


id_rsa.work.pub와 id_rsa.home.pub가 동일한 서버에 설치되어 있어도 작동합니까? 이유는 다른 컴퓨터에서 서버에 연결하는 것일 수 있기 때문에 같은 사용자로 서버에 연결하더라도 각 컴퓨터마다 다른 키 쌍을 갖는 것이 타당한 지 궁금합니다. 감사.
Russell

2
물론! 서버 측에서 ssh는 일치하는 것을 찾을 때까지 certified_keys 파일의 모든 공개 키를 확인합니다. 따라서 모든 키를 서버의 동일한 certified_keys 파일에 넣을 수 있습니다.
Phil Hollenback

@PhilHollenback "ssh는 일치하는 것을 찾을 때까지 authorized_keys 파일의 모든 공개 키를 검사합니다"-클라이언트가 공개 키를 해독 할 수 있음을 증명할 때까지 각 공개 키에 대해 계속 챌린지를 보내는 것을 의미합니까? 그것에 대한 언급이 있습니까? (진심으로 관심이)
aaa90210

5

여러 사용자의 키를 한 사용자에게 보내는 것이 합리적입니다. 일반적인 이유는 다음과 같습니다.

  • 지원
  • 자식 (예 Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • 앱에 대한 공통 액세스

다른 홈 디렉토리가 environment="HOME=/home/user1"있는 한, authorized_keys 파일에서 user1의 키를 앞에 추가 하여 키별로 변경할 수 있습니다 . 참조하십시오 man authorized_keys.

사용해보십시오, YMMV.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.