WebDAV 클라이언트로 Nextcloud 에 붙을 때 Invalid response: 401 이 돌아온다. 경로는 https://<호스트>/remote.php/dav/files/<username>/ 형태다.
인증 실패다. 순서대로 본다.
앱 비밀번호를 쓴다. 2단계 인증을 켜 두었으면 계정 비밀번호로는 WebDAV 에 붙을 수 없다. 2단계 인증이 없더라도 외부 클라이언트에는 앱 비밀번호를 쓰는 편이 안전하다 — 유출되어도 그 항목만 끊으면 된다.
발급 위치는 설정 → 보안 → 장치 및 세션 이다. 발급된 문자열을 비밀번호 자리에 그대로 넣는다.
경로를 확인한다. remote.php/dav/files/<username>/ 에서 사용자명을 빠뜨리거나, 표시 이름과 실제 로그인 ID 가 다른 경우가 흔하다. 설정 → 개인 정보 에서 실제 사용자명을 확인한다. 브라우저에서 같은 URL 을 열어 XML 이 나오면 경로는 맞는 것이다.
리버스 프록시가 인증 헤더를 흘리는지 본다. 앞단에 프록시를 두었는데 Authorization 헤더가 백엔드까지 전달되지 않으면 서버는 익명 요청으로 받아 401 을 돌려준다. Apache 로 PHP-FPM 에 넘기는 구성이라면 CGIPassAuth On 이 필요하다.
brute-force 보호에 걸렸을 수 있다. 비밀번호를 여러 번 틀리면 Nextcloud 가 그 IP 의 응답을 지연시키거나 막는다. 로그에서 확인한다.
sudo -u www-data php occ security:bruteforce:attempts <ip>
sudo -u www-data php occ security:bruteforce:reset <ip>