WordPress에 개인 ssh 키가 필요한 이유는 무엇입니까?


13

응용 프로그램 내에서 업데이트하도록 WordPress (예 : WordPress)를 구성하는 것이 편리하기 때문에 이상적입니다. 그럼에도 불구하고 요구 사항에 어려움을 겪고 있습니다. PHP 용 ssh2를 설치 한 후 표시되는 요청 된 필드는 내 공개 키뿐만 아니라 개인 키도 묻습니다. 나는 공개 키만 필요할 것이라고 생각합니다.

서버가 올바른 소프트웨어 패키지를 서버에 업로드 할 수 있도록 WordPress에서 실제로 개인 키를 서버에 제공합니까? SSH 개인 / 공개 키의 작동 방식에 익숙하므로 WordPress에 왜 이것이 필요한지 혼동됩니다. 그렇다면 업데이트 메커니즘에는이 프로토콜이 필요하지 않다고 생각합니다. 패키지 서버에 http 또는 ftp를 사용한 다음 다운로드 / 설치 / 활성화합니다.

WordPress에 왜 ssh 키가 필요합니까? 여기에 보안 문제가 있습니까?

답변:


11

기본적으로 WordPress는 실제로 실행중인 서버에 다시 연결해야합니다.

WordPress에서 파일을 쓰는 데 사용할 수있는 여러 가지 방법이 있으므로 업그레이드 중에 자체를 "덮어 쓰십시오". 보안 측면에서이 프로세스의 중요한 부분은 새 파일이 이전 파일과 동일한 소유권을 가져야한다는 것입니다.

따라서 WordPress는 파일을 직접 작성하고 결과 소유자를 확인하여 먼저 테스트를 수행합니다. 소유자가 PHP 파일과 일치하면 올바른 소유권으로 파일을 쓸 수 있다는 것을 알게됩니다 (이는 프로세스가 파일 소유자에게 "setuid"라는 것을 의미합니다).

결과 파일이 다른 사용자 ID (Apache / PHP가 "www"또는 "apache"사용자와 같은 다른 사용자로 실행중인 경우)에 의해 소유 된 경우 WordPress는 다른 방법으로 파일을 작성해야합니다. 올바른 소유자.

한 가지 방법은 간단한 FTP입니다. 서버에 FTP 연결을 다시 설정 한 다음 그 위에 파일을 쓰면 FTP를 통해 로그인 한 사람이 결과 파일을 소유하게됩니다. 따라서 FTP 정보를 입력하라는 메시지가 표시됩니다.

그러나 FTP는 안전하지 않습니다. 찾은 것처럼 다른 방법은 SSH2를 이용하는 것입니다. PHP 용 SSH 라이브러리를 사용하여 동일한 방식으로 서버에 SSH 연결을 다시 만들 수 있습니다. 그리고 그것은 그 자체로 나가는 연결 다시를 만들기 위해 그것을 사용하고 있기 때문에, 개인 키를 필요로하는 이유입니다. 연결하면 자격 증명을 설정하고 해당 자격 증명을 가진 사용자로 파일을 쓸 수 있습니다.

해당 키가있는 것이 염려되면 새 키 세트를 생성하여이 용도로만 사용하십시오.

당신의 직접적인 질문에 대답하기 위해, 워드 프레스는 아무데도 키를 "주지"않습니다. 업그레이드 패키지를 다운로드하고 압축을 푼 다음 해당 키를 사용하여 자체 서버 (기본적으로 루프백)에 연결 한 다음 해당 연결을 통해 파일을 복사합니다. 따라서 자격 증명은 파일이 올바른 소유권을 가지며 기본 Apache / www / php 프로세스에서 WordPress 파일을 소유하는 데 따른 보안 문제를 피한다는 것을 의미합니다.


좋은 대답입니다. 이것은 나의 관심사를 완화시켰다. 이것은 어디에나 문서화되어 있습니까?
Avery Chan

예, 세부 사항이 다를 수 있지만 가능합니다 : codex.wordpress.org/Filesystem_API
Otto

당신이 말할 때 "자신에게 다시 연결". PHP는 FTP 클라이언트이며 실행중인 동일한 서버에 연결되어 있습니까?
dangel

그렇습니다.
Otto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.