SSH RSA 키에 대한 암호가 필요합니까?


71

소규모 회사에서 현재 업무를 시작하기 전에 사무실에 네트워크에 방화벽이 없었으며 문자 그대로 백업 된 것이 없습니다. 이제 전용 sysadmin / one-man-IT-department로 사인온 했으므로이를 변경하기 위해 할 수있는 일을하고 있습니다. 상사에게 우리가 얼마나 취약한지를 설명한 후, 그는 내가 백업 서버 중 하나를 집에 설치하도록 허용했습니다.

지금은 매일 백업을 자동화 할 수 있도록 모든 것을 설정하려고합니다. 이것을 위해 ssh를 통해 rsync를 사용할 계획입니다. 보안과 자동화를 위해 ssh 암호 로그인을 비활성화하고 rsa 키 유효성 검사 만 사용하려고 계획했습니다. 글쎄, rsa 암호 문구가 설정되어 있으면 여전히 암호를 입력해야하며 이는 문제입니다.

RSA 암호 구가 없으면 보안 수준이 크게 떨어 집니까? 나는 회사에서 이런 종류의 단서가있는 유일한 사람이므로 누군가 내 컴퓨터에서 터미널을 호출하는 것에 대해 너무 걱정하지 않습니다 (AFK 일 때 항상 잠겨 있음) ) 및 백업 서버 중 하나에 ssh-ing하고 손상을 입 힙니다. 저는 여전히 시스템 관리 분야에있어 매우 새롭습니다. 이번이 처음으로 이런 일을하고 있으며 보안 설정에 허점을 남기고 싶지 않습니다.

여기서 문제의 컴퓨터는 Ubuntu 10.10, SME Server 및 OSX 10.6을 실행하고 있습니다.


5
키에 암호가 없어서 보안이 손실되지 않아야합니다. 누군가 키를 복사 할 수 있으면 키를 사용하지 못하게하는 비밀 키가 없으므로이 시점에서 키의 보안 무결성을 유지하는 것이 필수적입니다.
Chris Marisic

1
어쩌면 그것은 단지 나이지만, 위의 의견이 무엇을 말하려고하는지 전혀 모른다.
underscore_d

3
@underscore_d 그는 기본적으로 다음과 같이 말합니다. SSH 보안에 영향을 미치지 않고 키 암호를 지정하지 않아도 키는 로컬로 안전하게 유지해야합니다.
Hartator

답변:


89

아시다시피 암호 문구가 제공하는 이점은 누군가 개인 키를 읽을 수있는 경우이를 사용할 수 없다는 것입니다.

누군가 개인 키에 액세스 할 수있는 경우 공개 키로 설정된 시스템에 액세스하거나 손상을 입 었음을 당연한 것으로 간주해야합니다. .ssh / known_hosts가 난독 화되어 있어도 .bash_history 또는 .ssh / config와 같은 기능 만 사용하면이 작업이 더 쉬워집니다.

키에 비밀번호를 입력하지 않아도 끝이 아닙니다. 여기에도 불구하고 조금 더 나은 보안을 유지하기위한 3 가지 아이디어가 있습니다. ( 비기가, 두 번째 읽기가 아무것도 경우 )


  1. 모든 컴퓨터와 사용자에게 동일한 키를 사용하지 마십시오. 각 머신에서 (이러한 작업을 수행해야하는) 각 키 쌍마다 각 사용자를 생성하십시오. 이것은 당신이 어디에서 ssh 할 수 있는지에 대한 세밀한 제어를 유지할 수있게합니다.

  2. authorized_keys 파일에 키를 추가 할 때 특정 명령 만 실행하거나 특정 호스트에서만 사용할 수 있도록 잠글 수 있습니다.

    보기 man ssh및 검색 명령 ==에서

    구문은 다음과 같습니다.

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    즉, 거기에 팝 'rsync'가 있고 키로 'rsync' 호출 할 수 있으며 IP 주소 1.2.3.4 에서만 호출 할 수 있습니다 . 여러 개의 IP를로 분리 할 수 ​​있습니다 ,. 호스트 이름도 지원됩니다.

  3. 염두에 두어야 할 또 다른 사항은 sshd_config의 'AllowUser'지시문입니다.

    AllowUsers

    이 키워드 다음에는 공백으로 구분 된 사용자 이름 패턴 목록이 올 수 있습니다. 지정된 경우, 패턴 중 하나와 일치하는 사용자 이름에 대해서만 로그인이 허용됩니다. '*'와 '?' 패턴에서 와일드 카드로 사용할 수 있습니다. 사용자 이름 만 유효합니다. 숫자 사용자 ID가 인식되지 않습니다. 기본적으로 모든 사용자가 로그인 할 수 있습니다. 패턴이 USER @ HOST 형식 인 경우 USER 및 HOST를 별도로 검사하여 특정 호스트의 특정 사용자로 로그인을 제한합니다.

    기본적으로 사용자는 특정 위치에서만 로그인 할 수 있습니다. (와일드 카드도 허용하지만) 모든 문제를 해결하지는 않지만 적어도 다른 사람들에게는 어렵게 만듭니다.


1
아름답다-이것이 내가 알아야 할 것입니다. 정말 고맙습니다!
eckza

3
문제 없습니다. 철저한 목록으로 보지 마십시오! :-) auth.log / secure 등을 정기적으로 검토하는 것과 같은 것들이 떠 오릅니다.
PriceChild

3
암호를 도난 당할까 걱정하는 대신 감사합니까?
Ehtesh Choudhury

3
@shurane 둘 다하세요!
PriceChild

4

키 체인 과 같은 것을 사용 하여 암호를 덜 고통스럽게 만들 수 있습니다 . 이것은 암호가없는 로그인을 사용하는 것보다 약간 더 안전하며 여기에서 다른 답변과 함께 사용할 수 있습니다. PriceChild의 대답 은 꽤 좋았습니다.


-4

개인적으로 저는 RSA가 아닌 DSA를 사용합니다. 주로 그것이 항상 사용하고 그것이 제대로 작동한다는 것을 알고 있기 때문입니다. 그러나 제가 생각하는 이론은 같습니다. 당신은 대체 할 수 dsa와 함께 rsa아래있다.

소스에서 :

$ ssh-keygen -t dsa

그런 다음 .ssh/id_dsa.pub파일 의 내용을 .ssh/authorized_keys대상의 사용자 계정 으로 복사하십시오 .

그러면 비밀번호없이 소스와 대상간에 ssh 할 수 있어야합니다.


1
rsa를 통해 dsa를 옹호 할만한 이유가 있습니까? 나는 반대의 추천을 더 자주 보았다.
PriceChild

@PriceChild : AFAIK, 보안 수준은 다소 비슷합니다 (키 크기가 충분하다고 가정). 암호 작성자가 아닌 RSA를 기본 키 알고리즘으로 사용하기로 한 OpenSSH와 GnuPG의 결정을 신뢰합니다. 이 질문 도 참조하십시오 .
grawity

RSA가 최근에 민감한 민감한 코드에 해킹 당했다는 사실에 대한 실질적인 이유는 없습니다. RSA 키와 관련하여 어떻게해야하는지 전혀 몰랐습니다. .
Majenko

9
"회사 RSA"에 대한 해킹은 "알고리즘 RSA"의 보안에 영향을 미치지 않습니다. 또한 체크 아웃 secure.wikimedia.org/wikipedia/en/wiki/RSA_Security - "RSA는 RSA 공개 키 암호화 알고리즘의 이름을 따서 명명, 그 공동 발명가의 이니셜의 이름을 따서 명명 차례였다 로널드 라이 베스트, 아디 샤미르, 그리고 Len Adleman. "
PriceChild

6
@ 매트 : 그들이 공통적으로 가지고있는 유일한 것은 이름입니다. RSA 비대칭 암호화 알고리즘은 순수한 수학이며 일부 회사 시스템에 침입하여 약화 될 수있는 방법없습니다 .
grawity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.