github - 为什么http方式的git push需要密码。
ringa_lee
ringa_lee 2017-05-02 09:47:34
0
2
1120

RT. 已经知道从本地如何不用密码就完成git push到github上,但很好奇为啥http方式就需要每次密码认证才能push,个人对网络协议啥的没接触过,网上也没查到相关解释,所以来这里问下~

ringa_lee
ringa_lee

ringa_lee

모든 응답(2)
我想大声告诉你

이것은 http 프로토콜의 특정 특성과 관련이 있다고 생각합니다. 실제로 github은 http 프로토콜을 기반으로 하는 Smart http 프로토콜을 사용합니다. 하지만 나중에는 편의상 http 프로토콜을 직접 사용해 호출하기도 합니다.

http 프로토콜을 사용하면 로컬 구성 없이 원격 창고를 푸시하고, 복제하고, 끌어올 수 있습니다. 즉, 이 프로토콜은 어디에서나 사용할 수 있습니다. 즉, 로컬에 독립적입니다. 이는 이 프로토콜을 SSH 프로토콜과 구별하는 주요 기능입니다. 쿠키와 같은 특별한 방법을 사용하지 않는 한 http 프로토콜은 요청이 누구에게서 왔는지 기억하거나 알 수 없기 때문입니다. 따라서 승인이 필요한 서버의 경우 데이터를 얻거나 푸시하기 전에 확인을 위해 사용자 이름과 비밀번호를 입력해야 서버가 귀하가 누구인지, 데이터를 얻거나 푸시할 수 있는지 여부를 알 수 있습니다.

http 프로토콜의 특성은 ssh 프로토콜과 정반대입니다. ssh 프로토콜은 ssh 키를 사용하여 데이터를 푸시하거나 얻을 수 있는 권한이 있는지 식별하는 반면, ssh 키는 로컬에 저장됩니다. 물론 로컬에서 ssh 키를 사용하면 데이터 획득이나 푸시를 완료할 수 없습니다. 둘은 상호 보완적이고 반대되는 관계를 형성할 뿐입니다.

이제 질문에 대한 답을 알아야 합니다!

아래에 조금 더 말씀 드리고 싶은데, 도움이 되실 것 같습니다. 여기에 두 가지의 장점과 단점을 요약해 보겠습니다.

  • http 프로토콜

    • 장점: URL과 해당 권한이 있으면 해당 작업을 수행할 수 있습니다

    • .
    • 단점: 비밀번호 캐싱 메커니즘을 사용하지 않는 한 각 작업마다 빈번한 확인이 필요합니다

  • ssh 프로토콜

    • 장점: 데이터를 푸시하거나 가져올 때마다 확인을 위해 비밀번호를 입력할 필요가 없습니다

    • 단점: 사용하기 전에 SSH 키를 구성하고 생성해야 합니다

또한 github 웹사이트의 경우 git push, git pull, git fetch에는 확인이 필요하지만 git clone에는 확인이 필요하지 않습니다. 이것으로부터 나는 github 서버가 인증이 필요한 일종의 서버이지만 검증이 필요하지 않은 특별히 설정된 작업 중 하나일 수 있다고 추측할 수 있습니다(참고용으로만 개인적인 추측입니다). git clone

하지만 Github 도움말 매뉴얼에서 다음 문장을 발견했습니다:

명령줄에서 HTTPS URL을 사용하여

git clone, , git fetch 또는 git pull을(를) 원격 저장소에 연결하면 GitHub 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다.git push명령줄 URL에서 HTTPS를 사용하는 경우 원격 저장소에서
git clone, , git fetch 또는 git pull 작업을 수행하려면 Github 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. git push

하지만 실제로는

사용자 이름과 비밀번호를 입력할 필요가 없습니다. 도움말 문서가 잘못된 것이 아닐까요? 이제 다른 사람들이 내 답변을 계속할 수 있기를 바랍니다. 또는 새로 열린 질문에 답할 수 있습니다. 여기를 클릭하여 입력하세요. git clone

为情所困

HTTP가 입력한 비밀번호를 어떻게 저장한다고 생각하시나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿