SSH RSA 키에 대한 암호가 필요합니까? sysadmin / one-man-IT-department로 사인온

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

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

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

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



답변

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

누군가 개인 키에 액세스 할 수있는 경우 공개 키로 설정된 시스템에 액세스하거나 손상을 입 었음을 당연한 것으로 간주해야합니다. .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를 별도로 검사하여 특정 호스트의 특정 사용자로 로그인을 제한합니다.

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


답변

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


답변

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

소스에서 :

$ ssh-keygen -t dsa

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

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