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.