다른 사람의 SSH 키에 빈 암호가 있는지 어떻게 알 수 있습니까?


44

내 Linux 및 FreeBSD 시스템 중 일부에는 수십 명의 사용자가 있습니다. 직원은이 "ssh gateway"노드를 사용하여 다른 내부 서버에 SSH로 연결합니다.

우리는이 사람들 중 일부는 암호화되지 않은 개인 SSH 키를 (없는 키 사용하는 것이 우려 암호를 . 이것은 나쁜 크래커가이 컴퓨터에서 자신의 계정에 대한 액세스를 얻을 경우, 그들은 개인 키를 훔쳐 지금 액세스 할 수 있기 때문에, 보안상의 이유로 모든 사용자는 개인 SSH 키를 암호로 암호화해야합니다.

개인 키가 암호화되어 있지 않은지 어떻게 알 수 있습니까 (예 : 암호 문구가 포함되어 있지 않습니까)? ASCII-armored 키와 비 ASCII-armored 키에 대해 다른 방법이 있습니까?

최신 정보:

명확히하기 위해 컴퓨터에 수퍼 유저 액세스 권한이 있고 모든 사람의 개인 키를 읽을 수 있다고 가정합니다.


2
grumble ssh-agent grumble 게이트웨이에 개인 키가 없어야합니다.
derobert

다음과 같은 몇 가지 메모가 있습니다.-사용자는 종종 암호좋지 않습니다 . -사용자는 암호를 변경할 수 있습니다. -사용자는 키를 여러 곳에 저장할 수 있습니다. -사용자는 ssh 에이전트를 사용하여 랩톱에서 키를 한 번 잠금 해제 할 수 있습니다.
벤 하이드

답변:


59

빈 암호가있는 OpenSSH 개인 키는 실제로 암호화되지 않습니다.

암호화 된 개인 키는 개인 키 파일에서와 같이 선언됩니다. 예를 들어 :

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,7BD2F97F977F71FC

BT8CqbQa7nUrtrmMfK2okQLtspAsZJu0ql5LFMnLdTvTj5Sgow7rlGmee5wVuqCI
/clilpIuXtVDH4picQlMcR+pV5Qjkx7BztMscx4RCmcvuWhGeANYgPnav97Tn/zp
...
-----END RSA PRIVATE KEY-----

그래서 같은

# grep -L ENCRYPTED /home/*/.ssh/id_[rd]sa

트릭을해야합니다.


3
@ jmanning2k : 방금 암호 문구없이 RSA 개인 키를 만들었으며 문자열 '암호화 : 없음'을 포함하지 않습니다.
Stefan Lasiewski

@ jmanning2k : -L플래그는 패턴과 일치하지 않는 파일 이름 만 나열합니다. 따라서이 답변은 그 자체로 정확합니다.
bahamat

명확성을 기하기 위해 의견이 수정되었습니다. 레코드의 경우 '암호화 : 없음'이라는 퍼티 개인 키 파일을 복사했습니다.
jmanning2k

2
또는 문자열 OPENSSH : tedunangst.com/flak/post/…
Jack Wasey

10

나는 이것을 온통 살펴보고 만족스러운 답변을 찾지 못했지만 하나를 만들었으므로 ...

이렇게하면 파일이 작동하면 파일이 업데이트되므로 키를 테스트중인 사용자에게 알리지 않으려면 먼저 키를 복사 할 수 있습니다. OTOH, 당신은 방금 암호없는 키로 사용자를 잡았 기 때문에, 당신은 그들이 눈치 채도 신경 쓰지 않을 것입니다. :디

$ ssh-keygen -p -P '' -N '' -f ~/.ssh/KEYTEST
Key has comment '/home/rlpowell/.ssh/KEYTEST'
Your identification has been saved with the new passphrase.
$ echo $?
0

$ ssh-keygen -p -P '' -N '' -f ~/.ssh/KEYTEST
Bad passphrase.
$ echo $?
1

3
-N ''암호문이 항상 바뀌지 않도록 왜 대신하지 않습니까?
모드를 잘 치료하십시오

facepalm 완벽합니다. 정말 감사합니다.
rlpowell

이 솔루션은 SSH의 새로운 개인 키 형식과도 작동하기 때문에 +1입니다.
Sebastian Krysmanski

8

개인 키에 액세스 할 수 있다면 암호 문구없이 공개 키에 대해 인증 할 수 있다고 생각합니다. 이것이 작동하면 암호가 없다는 것을 알 수 있습니다. 있는 경우 오류 메시지가 표시됩니다.

개인 키에 액세스 할 수 없으면이 키를 감지 할 수 없습니다. 암호의 목적은 개인 키를 "잠금 해제"하는 것이며, 공개 키와 관련하여 기능이 없습니다.

실제로는 시스템 보안 수준을 떨어 뜨릴 수 있습니다. 공개 키를 사용할 수 있습니다. 공개 키를 사용하면 무차별 대입이나 암호를 해독하려는 다른 공격을 시도 할 수 있습니다.

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