나는 github을하려고합니다-자식 당겨www-data 사용자로 PHP 스크립트에서 "호스트 키 확인에 실패했습니다."라는 메시지가 나타납니다. 내 기본 사용자는 호스트 키를 등록했지만 내 www-data는 ~/.ssh 디렉토리에 액세스할 수 없기 때문에 등록되어 있지 않습니다.
Ubuntu 18.04에도 시스템 전체에 알려진 호스트 파일이 있습니까? 내 생각에 www-data 사용자에게 내 사이트에 대한 액세스 권한을 부여하는 것은 안전하지 않을 것 같습니다.~/.ssh-예배 규칙서?
답변1
@GMaster가 제안했듯이 자동 풀을 위해 SSH 대신 HTTPS를 사용하는 것이 가장 합리적인 선택인 것 같습니다. 그러나 정말로 SSH 프로토콜을 사용해야 하는 경우(이유는 무엇입니까?) 처리해야 할 몇 가지 옵션 known_hosts
과 자격 증명이 있습니다.
의 홈 디렉토리 에
~/.ssh
미리 채워진 을 포함하여 트리를 만듭니다 (내 시스템에서는 이지만 귀하의 디렉토리는 체크인하십시오 ). 호스트 키를 수동으로 연결하고 확인하여 파일을 직접 생성할 수 있습니다. 해당 파일과 디렉토리에 적절한 권한(보통 0700/0600)과 소유권이 있는지 확인하세요.known_hosts
www-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