.ssh 폴더의 개인 키에 대한 권한? 권한이 무엇이어야 합니까? 현재 내 권한은 다음으로 설정되어

.ssh폴더 에서 권한을 변경 한 후 개인 키를 사용하는 소프트웨어를 사용할 때마다 매번 암호를 입력해야합니다. id_rsa암호를 사용하는 앱을 사용할 때마다 암호를 입력 할 필요가 없으면 파일 에 대한 권한이 무엇이어야 합니까?

현재 내 권한은 다음으로 설정되어 있습니다.

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts



답변

일반적으로 권한은 다음과 같습니다.

  • .ssh 예배 규칙서: 700 (drwx------)
  • 공개 키 ( .pub파일) :644 (-rw-r--r--)
  • 개인 키 ( id_rsa) :600 (-rw-------)
  • 마지막으로 홈 디렉토리는 그룹이나 다른 사람들이 (기타) 쓸 수 없어야합니다 755 (drwxr-xr-x).

매번 시스템 / 사용자 암호를 입력해야하고 이전에는 입력하지 않아도된다고 가정합니다. cdhowie의 답변은 키를 생성 할 때 암호 / 암호를 설정했다고 가정하고, 그렇게하면 ssh 에이전트를 사용하지 않으면 매번 암호를 입력해야합니다.


답변

나는 이것을 영원히 고투하고 마침내 필요한 것이 무엇인지 알아 냈습니다. 교체 $USER서버에에 로그인 할 SSH 사용자 이름으로 사방. 로그인을 시도하는 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
  • 즉, 확인 user파일 / 폴더를 소유하지 root: chown user:user authorized_keyschown user:user /home/$USER/.ssh
  • 생성 된 공개 키 (from ssh-keygen)를 authorized_keys서버 의 사용자 파일에 넣습니다.
  • 사용자의 홈 디렉토리가 예상 한대로 설정되어 있고 수정 한 올바른 .ssh폴더가 포함되어 있는지 확인하십시오 . 그렇지 않은 경우 usermod -d /home/$USER $USER문제 해결에 사용 하십시오
  • 마지막으로 ssh를 다시 시작하십시오. service ssh restart
  • 그런 다음 클라이언트에 로컬 사용자 .ssh폴더 에 공개 키 및 개인 키 파일이 있는지 확인 하고 로그인하십시오.ssh user@host.com

답변

또한 다른 사용자가 홈 디렉토리를 쓸 수 없는지 확인하십시오.

chmod g-w,o-w ~


답변

권한과 관련이 없어야합니다. 개인 키는 비밀번호로 암호화되므로 개인 키를 해독하고 사용할 수 있으려면 입력해야합니다.

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


답변

Felipe는 정확합니다. .ssh 디렉토리를 포함하는 디렉토리는 그룹 또는 다른 사람이 쓸 수 없어야합니다. 따라서 ssh-keygen 명령에 암호를 지정하지 않고 .ssh 디렉토리가 홈 디렉토리에 있다고 가정하고 chmod go-w ~실행 후 ssh’ing 할 때 비밀번호를 묻는 메시지가 계속 표시되면 다음으로 논리적으로 시도 ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys하십시오.


답변