it-swarm-korea.com

.ssh 폴더의 개인 키에 대한 사용 권한?

.ssh 폴더에서 권한을 변경했는데 개인 키를 사용하는 소프트웨어를 사용할 때마다 암호를 입력해야합니다. id_rsa 파일에 대한 내 권한은 사용하는 응용 프로그램을 사용할 때마다 암호를 입력하지 않아도됩니까?

현재 내 권한은 다음으로 설정됩니다.

[email protected] 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
[email protected] 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
[email protected] 1 Jody  staff  3855 Sep 13 22:35 known_hosts
356
Jody G

일반적으로 사용 권한은 다음과 같아야합니다.

  • .ssh 디렉토리 : 700 (drwx------)
  • 공개 키 (.pub 파일) : 644 (-rw-r--r--)
  • 개인 키 (id_rsa) : 600 (-rw-------)
  • 마지막으로 홈 디렉토리가 그룹이나 다른 사람들 (755 (drwxr-xr-x) 이하)이 쓸 수 없도록해야합니다.

나는 당신이 당신의 시스템/사용자 암호를 매번 입력해야한다는 것을 의미한다고 가정하고 있으며, 이전에는 그렇게 할 필요가 없었습니다. cdhowie의 대답은 당신이 키를 생성 할 때 암호/암호를 설정했다고 가정하고, 그렇게했다면 ssh 에이전트를 사용하지 않는다면 매번 암호를 입력해야 할 것이라고 말합니다.

596
tab33

나는 이것을 영원히 고민하고 마침내 필요한 것을 알아 냈습니다. 서버에 로그인하려는 SSH 사용자 이름으로 $USER을 (를) 사방에 대체하십시오. root으로 로그인하려는 경우 루트가 아닌 사용자의 경우 /root/.ssh 대신 /home/root/.ssh 등을 사용해야합니다.

  • 서버의 홈 디렉토리에 다른 사람이 쓰기 권한을 부여해서는 안됩니다 : chmod go-w /home/$USER
  • 서버의 SSH 폴더에는 700 개의 사용 권한이 필요합니다. chmod 700 /home/$USER/.ssh
  • Authorized_keys 파일에 644 개의 사용 권한이 있어야합니다. chmod 644 /home/$USER/.ssh/authorized_keys
  • userroot이 아닌 파일/폴더를 소유하는지 확인하십시오. chown user:user authorized_keyschown user:user /home/$USER/.ssh
  • 생성 된 공개 키 (ssh-keygen의)를 서버의 사용자 authorized_keys 파일에 넣습니다.
  • 사용자의 홈 디렉토리가 예상대로 설정되어 있고 수정 한 올바른 .ssh 폴더가 포함되어 있는지 확인하십시오. 그렇지 않으면 usermod -d /home/$USER $USER을 사용하여 문제를 해결하십시오.
  • 마지막으로 ssh를 다시 시작하십시오. service ssh restart
  • 그런 다음 클라이언트가 로컬 사용자의 .ssh 폴더에 공개 키와 개인 키 파일을 가지고 로그인했는지 확인하십시오. ssh [email protected]
82
Alex W

또한 홈 디렉토리에 다른 사용자가 쓸 수 없도록하십시오.

chmod g-w,o-w ~

35
Felipe Alvarez

권한은이 작업과 관련이 없어야합니다. 비공개 키는 암호로 암호화되므로 비공개 키를 해독하고 사용할 수 있도록 비공개 키를 입력해야합니다.

해독 된 키를 캐시 할 수있는 ssh 에이전트를 실행하여이를 필요로하는 응용 프로그램에 제공 할 수도 있습니다.

5
cdhowie

Felipe가 맞습니다 - .ssh 디렉토리가 들어있는 디렉토리는 그룹이나 기타로 쓸 수 없어야합니다. 따라서 chmod go-w ~는 ssh-keygen 명령에 암호를 할당하지 않은 것으로 가정하고 ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys를 실행 한 후 ssh를 할 때 암호를 입력하라는 메시지가 여전히 나타나면 시도 할 다음 논리적 인 시도입니다. ssh 디렉토리는 홈 디렉토리에 있습니다 .

4
mikentalk