시스템 전체에 알려진 호스트 파일이 있습니까?

시스템 전체에 알려진 호스트 파일이 있습니까?

나는 github을하려고합니다-자식 당겨www-data 사용자로 PHP 스크립트에서 "호스트 키 확인에 실패했습니다."라는 메시지가 나타납니다. 내 기본 사용자는 호스트 키를 등록했지만 내 www-data는 ~/.ssh 디렉토리에 액세스할 수 없기 때문에 등록되어 있지 않습니다.

Ubuntu 18.04에도 시스템 전체에 알려진 호스트 파일이 있습니까? 내 생각에 www-data 사용자에게 내 사이트에 대한 액세스 권한을 부여하는 것은 안전하지 않을 것 같습니다.~/.ssh-예배 규칙서?

답변1

@GMaster가 제안했듯이 자동 풀을 위해 SSH 대신 HTTPS를 사용하는 것이 가장 합리적인 선택인 것 같습니다. 그러나 정말로 SSH 프로토콜을 사용해야 하는 경우(이유는 무엇입니까?) 처리해야 할 몇 가지 옵션 known_hosts과 자격 증명이 있습니다.

  • 의 홈 디렉토리 에 ~/.ssh미리 채워진 을 포함하여 트리를 만듭니다 (내 시스템에서는 이지만 귀하의 디렉토리는 체크인하십시오 ). 호스트 키를 수동으로 연결하고 확인하여 파일을 직접 생성할 수 있습니다. 해당 파일과 디렉토리에 적절한 권한(보통 0700/0600)과 소유권이 있는지 확인하세요.known_hostswww-data/var/www/etc/passwd

  • 이 파일을 다른 곳에 두고(적절한 권한이 있는 경우) 다음을 사용하여 가리킵니다.-o UserKnownHostsFile=/path/to/known_hosts

  • -o StrictHostKeyChecking위의 두 접근 방식 모두 다양한 옵션을 조정 하고 -o UpdateHostKeys보안과 편의성 사이의 균형을 유지합니다.

  • 최후의 수단으로 /var/www/.ssh/config명령줄 옵션에서 또는 명령줄 옵션을 사용하여 www-data에 대한 호스트 키 유효성 검사를 완전히 비활성화할 수 있습니다 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null. 이것이 의미하는 심각한 보안 영향을 인식하십시오.

그리고 이미 의심했던 점을 더욱 강화해 보겠습니다. 어떤 상황에서도 www-data(또는 기타) 사용자에게 귀하의 웹 사이트에 대한 액세스 권한을 부여하지 마십시오.~/.ssh . 당신의 기억사적인열쇠도 거기 있어요!

답변2

예, 실제로 시스템 전체에 알려진 호스트 파일이 있습니다. 이는 기본적으로 /etc/ssh/ssh_known_hosts. 시스템의 기본값을 보려면 를 실행 man ssh_config하고 검색 할 수 있습니다. 원하는 경우 GlobalKnownHostsFile이 옵션의 값을 일반( )으로 변경할 수도 있습니다 .-o

관련 정보