여러 SSH 키를 갖는 것이 합리적입니까?


44

지금까지 로그인해야하는 각 서버에 대해 별도의 SSH 키를 만들었습니다 (각 목적에 따라 더 정확함). 다른 사이트에 대한 다른 암호와 마찬가지로 보안 감각으로 수행했습니다.

여러 SSH 키가 실제로 보안을 향상 시킵니까? 그들 모두는 동일한 기계에서 사용되며 동일한 ~ / .ssh에 있으며 대부분 동일한 암호를 사용합니다.

전체 시스템을 포기하고 모든 것에 대해 하나의 SSH 키만 사용해야합니까?

[업데이트는 2015년 8월 5일] Github에서 귀하의 공개 키를 발행하고 SSH 클라이언트는 구성에 따라, 모든 서버에 공개 키를 모두 보낼 수 있습니다 당신이 제 3 자 SSH 서버와 관련된 경우에 연결할 때 사용자의 신원을 알고, thusly 히, 내 의견으로는 편집증이지만 여러 SSH 키 를 사용해야 합니다.


이 질문은 정보 보안 에 더 적합 할 수 있습니다 .
gerrit

답변:


25

SSH 키는 공개 키 암호화를 사용합니다. 즉, 모든 서버에 설치하는 것은 전 세계에 알리고 싶은 공개 키 일뿐 입니다. 유일한 비밀은 자신의 컴퓨터에 고정 된 개인 키입니다. 그래, 네가 시간을 낭비한다고 말하고 싶다.


19
별도의 키를 사용해야하는 정당한 이유가 있다고 생각하므로 시간 낭비가 아닙니다. 손상된 키의 경우이 위험이 줄어 듭니다. 암호는 각 키마다 달라야합니다. 동의합니다.
jfmessier

기계마다 다른 키 페어를 갖는 것이 합리적입니까? 다른 VirtualBox OS 인스턴스처럼?
Santosh Kumar

1
이 답변은 "자신의 컴퓨터에 고정 된 개인 키"에 의존하기 때문에 심층 방어 개념을 무시합니다. 예를 들어 개인 키 중 하나가 ssh-agent에서 사용되는 동안 랩톱을 도난당한 경우 어떻게되는지 고려하십시오. 여러 개의 키가있는 경우 여전히 암호화 된 키는 안전합니다. 나는 그것을 시간 낭비라고 부르지 않을 것입니다.
Jon Bentley

33

궁극적으로 이것은 당신에게 달려 있습니다. 위협 모델을 평가해야합니다. 키 중 하나가 손상되었을 가능성이 있습니까? 한 키가 손상되면 다른 키가 손상 될 가능성은 얼마나됩니까? 키가 손상되면 어떤 결과가 발생합니까? 여러 키를 관리하는 데 드는 시간 (시간 포함)은 얼마입니까?

이와 같은 요소를 고려하면 실제로 별도의 키가 필요한지 결정하는 데 도움이됩니다. 로컬 네트워크의 개인 컴퓨터에서는 일반적으로 여러 키를 관리하려고 할 때 추가 오버 헤드가 발생하지 않습니다. 그러나 내 네트워크 외부에서 고유 한 암호로 각각 다른 키를 사용합니다. 하지만 그건 내 개인적인 의견 일뿐입니다.


6
"위협 모델 평가"에 +1 이것은 요점입니다.
썰매 타기

21

두 개 이상의 키를 사용하는 것은 시간 낭비가 아닙니다.

더 많은 다양성 == 더 적은 위험.

Spiff의 진술이 잘못되었습니다.

요점은 공개 키가 개인 키 소유자 에게 액세스 권한을 부여 하고 다른 사람 은 액세스 할 수 없다는 것입니다.

여기서 걱정해야 할 위험은 인증입니다. 불량 사이트는 인증 요청을 에이전트 작업으로 전달합니다. 하나의 키만 사용하는 경우 에이전트에 하나의 키만로드 된 경우에도 모든 사이트가 불량에 노출 됩니다.

이것은 패스 프레이즈와 아무 관련없으며 , 여기에는 차이가없는 동일한 패스 프레이즈를 가진 여러 개의 키가있을 수 있습니다. 훼손된 암호가 아니기 때문입니다.

도적은 에이전트에게 도전 과제를 전달하고 키가로드 된 모든 사이트에 연결할 수 있습니다 . 다른 키를 사용하면 하나의 키가로드되어 하나의 사이트가 위험에 노출 됩니다.

나는 너에게 좋다고 말하고, 너는 너의 게으름보다 다른 사람들의 프라이버시를 골랐다.

추신 : 이야기의 도덕 은 에이전트 전달에주의


정기적으로 로그인하는 세 서버 각각에 하나씩 세 개의 SSH 키를 생성한다고 가정합니다. 어느 날, 나는 이미 세 가지 모두에 로그인 한 후 (ssh-agent가 세 개의 키에 대한 암호를 캐시 함을 의미 함), 내 ssh-agent가 손상되면 세 로그인이 모두 손상됩니다. 이러한 경우 SSH 키가 여러 개인 경우 보호되지 않습니다. 내가 당신을 올바르게 이해 했습니까?
sampablokuper

9

여러 공개 키에 대한 유용한 사용 사례가 하나 있다고 생각합니다. 다른 신뢰 영역의 컴퓨터에 개인 키가 저장된 경우입니다. 따라서 일반적으로 내 "작업"키인 키 하나와 "홈"키인 키 하나를 유지합니다. 단순히 ""홈 "항목의 개인 키가 내 업무용 컴퓨터에 저장되지 않고 그 반대이기 때문입니다.


다른 키를 가진 다른 기계를 가지고 있다면 완벽합니다. 한 대 (또는 여러 대)의 컴퓨터에 모두 같은 키가있는 경우 단일 키를 갖는 것 외에 다른 것으로부터 자신을 보호하지 못합니다. 하나가 손상된 경우 해당 시스템의 나머지도 모두 손상됩니다.
xref

3

보안편의 라는 두 가지 각도에서 합리적 이라고 생각할 수 있습니다 .

SSH 키 페어를 만들 때 다음과 같이 개인 키를 보호하기 위해 더 많은 레이어를 추가하는 암호를 제공해야합니다.

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

암호 문구를 요구하는 명백한 프롬프트가 있지만, 일부 (또는 많은) 사람들은 여전히 ​​괄호 안에있는 정보에 더 집중합니다 : (암호가 없으면 비어 있음) , 그리고 그 제안에 따름.

여러 SSH 키 쌍 사용 여부추가 passwd 입력 여부 결합 하는 방법에는 최소한 네 가지가 있습니다. 그리고 모든 키 쌍과 config파일이에 저장되어 있다고 가정합니다 ~/.ssh/.

이제 보안을 먼저 고려하지 마십시오 .

다음 표는 보안에 대한 간단한 순위를 제공합니다. 숫자가 클수록 보안이 강화됩니다.

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

passwd가 없으면 누군가 시스템에 침입 한 경우 차단기는 모든 개인 키와 구성, 원격 서버 인증을 얻을 수 있습니다. 따라서이 상황에서 하나의 키 페어와 멀티 키 페어는 동일합니다. 가장 안전한 방법은 다른 ssh 키 쌍에 서로 다른 암호를 사용하는 것입니다.

그런 생각 let't 편리 .

그러나 더 많은 키 페어와 더 많은 암호는 우리의 삶을 덜 편리하게 만듭니다. 다음 표는 보안에 대한 간단한 순위를 제공합니다 (큰 숫자는 더 안전합니다)

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

따라서 일반적인 상황에서 보안편의성 을 동시에 사용해야하는 경우 두 점수를 곱할 수 있으며 하나의 SSH 키 쌍 (WITH passwd) 이 적합합니다.

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