ssh -i가 여전히 비밀번호를 묻는 메시지를 표시하는 이유는 무엇입니까?

ssh -i가 여전히 비밀번호를 묻는 메시지를 표시하는 이유는 무엇입니까?

su사용자에 대한 권한이 있습니다 . 해당 디렉토리로 이동하여 에서 공개 SSH 키를 가져옵니다. 에도 추가했습니다.foousertarget.host~/.sshid_rsa.pubauthorized_keys

ssh다른 서버에서 활성화 하고 싶습니다 . 다른 서버로 가서 공개 키를 저장 /path/to/foouser.pub하고 다음을 실행해 보았습니다.

ssh -i /path/to/foouser.pub[이메일 보호됨]

하지만 여전히 비밀번호를 묻는 메시지가 나타납니다. 왜? SSH 호스트의 foouser SSH 구성에서 변경해야 할 사항이 있습니까?

답변1

공개 키가 아닌 플래그와 함께 개인 키를 사용해야 합니다 -i.

공개 키는 동일한 공개 키를 기반으로 다른 서버에서 보낸 질문을 통과할 수 없으므로(비대칭 암호화에서는 공개 키를 기반으로 한 질문에 응답하기 위해 개인 키를 사용해야 함) 키 인증이 실패하면 ssh다른 ID가 계속해서 시도됩니다. 비밀번호를 포함한 방법.


비대칭 암호화가 작동하는 방식은 다음과 같습니다.사적인키는 유지됩니다사적인. 누구와도 공유해서는 안 되며, 생성된 호스트에서 복사해서도 안 됩니다. (물론 이메일로 보내면 안 됩니다!)

이것사람들열쇠는 어디로든 보낼 수 있습니다.

공개키로 암호화한 데이터는 개인키로만 복호화할 수 있고, 개인키로 암호화한 데이터는 공개키로만 복호화할 수 있다.

수학적으로 말하면 RSA 알고리즘에서는 두 키 중 하나를 비밀로 유지해야 한다는 점을 제외하면 두 키 사이에 기능적 차이가 없습니다. 그러나 실제 SSH 구현에서는 이 두 키가 구별되고 다르게 보이므로 다음을 확인하세요.

  • 귀하의 공개 키(개인 키가 아님)가 대상 서버의 "인증된 키" 파일에 추가되고,
  • 개인 키를 에 전달합니다 ssh -i. (공개 키를 에 전달해도 문제가 되지 않습니다 -i. 작동하지 않습니다.)

당신이 공유한 적이 있다면사적인키를 누르거나 대상 서버에 복사합니다.새 키를 생성하고 이전 키를 삭제합니다.


방금 수행한 특정 단계를 더 자세히 살펴보았습니다. 백업하고 다시 시작해야 합니다. 이 시점에서 foouseron의 키 쌍을 삭제 target.host하고 여기에 넣은 인증된 키 파일에서 공개 키를 제거해야 합니다. 개인 키를 복사하지 마십시오.

알아채다SSH를 통한 액세스[이메일 보호됨]someother.host에서 오는 경우 foouser에 키 쌍이 필요하지도 않습니다.

무엇키 쌍을 생성해야 합니다.someone.host에서사용자 수에 따라 SSH를 사용합니다.에서,그리고 당신은 넣어사람들쌍의 키는 ~foouser/.ssh/authorized_keys계속 됩니다 target.host.


단계별로 간단하게,하지만 지금 수행해야 하는 보안 정리 단계는 생략됩니다.개인 키를 복사했기 때문입니다. 연결을 설정하는 쉬운 방법:

  1. 존재하다startserver.host, 사용자로 startinguser실행합니다 ssh-keygen. 비밀번호를 설정할지 여부는 귀하에게 달려 있습니다. (비밀번호는 개인 키가 유출된 경우 추가 보안을 추가합니다.하다위협을 받고 있습니다. ) 기본 설정으로 키 쌍을 생성하라는 메시지가 표시될 때마다 Enter 키를 누르기만 하면 됩니다.
  2. cat ~/.ssh/id_rsa.pub디스플레이 실행사람들열쇠.
  3. 명령의 출력을 복사합니다.다른 호스트에게( target.host)에 추가하여 ~foouser/.ssh/authorized_keys.
  4. 에서 startserver.host실행합니다. 깃발이 필요하지 않습니다.ssh [email protected]-i

댓글에 답장:

개인 키를 절대 복사해서는 안 되는 경우, ssh -i개인 키가 필요할 때 어떤 이점이 있는지 설명해 주실 수 있나요?

호스트에서 키 쌍을 생성합니다.~에서ssh다른 서버로 이동하고 싶습니다 .

귀하의 개인 키는 해당 서버에 남아 있으며 다른 곳으로 복사되지 않습니다. (백업에 있을 수도 있고 아닐 수도 있습니다. 하지만사용,다른 곳에서는 복사된 적이 없습니다. )

당신의사람들키는 로그인하려는 각 서버에 복사되며, 특히 해당 서버에 로그인할 수 있도록 하려는 사용자의 홈 디렉터리에 있는 파일에 추가됩니다 authorized_keys..ssh

이 설정(기본값)에서는 그럴 필요가 없습니다 -i. 그러나 여러 키 쌍이 있을 수 있습니다.자신의 컴퓨터에서다양한 목적(다른 서버 그룹)으로 사용합니다. 요점 -i은 개인 키 ID를 읽을 대체 위치를 지정할 수 있다는 것입니다. 를 사용 cd ~/.ssh; mv id_rsa id_rsa.bak; mv id_rsa.other id_rsa하거나 사용하지 않고 ssh ...동일한 효과를 얻을 수 있습니다 -i. 하지만 -i그게 더 편리해요.

관련 정보