github을 만들려고 해요-자식 당겨www-data 사용자로 PHP 스크립트에서 "호스트 키 확인 실패"를 얻습니다. 내 기본 사용자는 호스트 키를 등록했지만 내 www-data는 ~/.ssh 디렉토리에 액세스할 수 없기 때문에 등록되어 있지 않습니다.
Ubuntu 18.04에 시스템 전체에 알려진 호스트 파일이 여전히 있습니까? www-data 사용자가 내 데이터에 액세스하도록 허용하는 것이 안전하지 않다고 생각합니다.~/.ssh- 목차는?
답변1
@GMaster가 제안한 것처럼 자동화된 가져오기를 위해 SSH 대신 HTTPS를 사용하는 것이 가장 현명한 선택인 것 같습니다. 그러나 SSH 프로토콜을 사용해야 하는 경우(이유는 무엇입니까?) 몇 가지 처리 옵션 known_hosts
과 자격 증명이 있습니다.
~/.ssh
미리 채워진 디렉터리를 포함하여 홈 디렉터리에 트리를 만듭니다known_hosts
.www-data
(내 시스템에서는 이었지만/var/www
사용자의 디렉터리는 에서 체크인했습니다/etc/passwd
.) 호스트 키를 수동으로 연결하고 확인하여 이 파일을 직접 생성할 수 있습니다. 해당 파일과 디렉터리에 적절한 권한(일반적으로 0700/0600)과 소유권이 있는지 확인하세요.이 파일을 적절한 권한이 있는 다른 곳에 두고 다음을 사용하여 가리킵니다.
-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
원한다면 평소대로(사용하여) 이 옵션의 값을 변경할 수도 있습니다.