GitHub가 SSH를 통한 HTTPS를 권장하는 이유는 무엇입니까?
GitHub 사이트에는 링크가 있습니다 ...
https://help.github.com/articles/generating-ssh-keys
... 그리고 그것은 ...
권장되는 HTTPS 방법을 사용하지 않기로 결정한 경우 SSH 키를 사용하여 컴퓨터와 GitHub 간의 보안 연결을 설정할 수 있습니다. 아래 단계는 SSH 키를 생성 한 다음 공개 키를 GitHub 계정에 추가하는 과정을 안내합니다.
HTTPS가 권장되는 방법 인 이유는 무엇입니까? SSH 방법에 일종의 보안 결함이 있습니까? SSH 키를 만들었으므로 보안 문제가 완화됩니까?
GitHub가 권장 사항을 여러 번 변경했습니다 ( 예 ).
가장 광범위한 네트워크 및 플랫폼과이 모든 것을 처음 사용하는 사용자가 설정하기가 가장 쉽기 때문에 현재 HTTPS를 권장하는 것으로 보입니다.
SSH에는 고유 한 결함이 없습니다 (비활성화 된 경우). 아래 링크에서 여전히 SSH 연결에 대한 세부 정보를 제공함을 알 수 있습니다.
방화벽으로 인해 HTTPS가 차단 될 가능성이 적습니다.
https://help.github.com/articles/which-remote-url-should-i-use/
https : // 클론 URL은 모든 리포지토리 (공용 및 개인)에서 사용할 수 있습니다. 이 URL은 방화벽이나 프록시 뒤에 있더라도 모든 곳에서 작동합니다.
HTTPS 연결을 통해
credential.helper
비밀번호를 캐시 할 수 있습니다.https://help.github.com/articles/set-up-git
알아두면 좋은 점 : 자격 증명 도우미는 HTTPS 리포지토리 URL을 복제 할 때만 작동합니다. SSH 리포지토리 URL을 대신 사용하면 SSH 키가 인증에 사용됩니다. 권장하지는 않지만이 방법을 사용하려면이 안내서에서 SSH 키 생성 및 사용에 대한 도움말을 확인하십시오.
몇 가지 이유로 GitHub에서 HTTPS를 권장한다고 가정합니다.
1) 계정 정보 만 필요하므로 어디에서나 사용하기가 더 쉽습니다 (SSH 키 필요 없음)
2) HTTPS 모든 방화벽에서 열려있는 포트입니다. SSH는 항상 외부 네트워크와의 통신을위한 포트로 열려 있지는 않습니다
따라서 GitHub 리포지토리는 SSH보다 HTTPS를 사용하여보다 보편적으로 액세스 할 수 있습니다.
내 생각에 SSH 키는 키를 만드는 데 약간의 추가 작업이 필요합니다.
1) SSH 키는 GitHub 계정에 대한 액세스를 제공하지 않으므로 키를 도난당한 경우 계정을 도용 할 수 없습니다.
2) SSH 키와 함께 강력한 키 구문을 사용하면 키를 도난 당하더라도 오용이 제한됩니다.
GitHub 계정 자격 증명 (사용자 이름 / 암호)을 도난당한 경우 GitHub 비밀번호를 변경하여 액세스를 차단하고 모든 공유 저장소를 빠르게 삭제할 수 있습니다.
개인 키를 도난당한 경우 누군가 빈 저장소를 강제로 푸시하고 소유 한 각 저장소에 대한 모든 변경 기록을 지울 수 있지만 GitHub 계정에서 아무것도 변경할 수는 없습니다. 이 GitHub 계정에 대한 액세스 권한을 침해 한 경우 복구를 시도하는 것이 훨씬 쉬울 것입니다.
암호를 사용하여 보호 된 키로 SSH를 사용하는 것이 좋습니다. 각 컴퓨터마다 다른 SSH 키가 있으므로 해당 시스템을 도난 당하거나 키가 손상된 경우 GitHub에 빠르게 로그인하고 해당 키를 삭제하여 원치 않는 액세스를 방지 할 수 있습니다.
사용중인 네트워크가 SSH 포트를 차단하면 HTTPS를 통해 SSH를 터널링 할 수 있습니다.
https://help.github.com/articles/using-ssh-over-the-https-port/
HTTPS를 사용하는 경우 계정과 리포지토리를 보호하기 위해 이중 인증을 추가하는 것이 좋습니다.
도구 (예 : 편집기)와 함께 HTTPS를 사용하는 경우 해당 도구 구성에서 사용자 이름과 비밀번호를 캐시하는 대신 GitHub 계정의 개발자 토큰을 사용해야합니다.
당신이 잘못 인용하거나 github이 다른 페이지에서 다른 권장 사항을 가지고 있거나 시간이 지남에 따라 학습하고 기록을 업데이트 할 수 있습니다.
GitHub와 상호 작용할 때 SSH 연결을 사용하는 것이 좋습니다. SSH 키는 비밀번호를 사용하지 않고 신뢰할 수있는 컴퓨터를 식별하는 방법입니다. 아래 단계는 SSH 키를 생성 한 다음 공개 키를 GitHub 계정에 추가하는 과정을 안내합니다.
https://help.github.com/articles/generating-ssh-keys
참조 : 공식 어떤 원격 URL을 사용해야합니까? help.github.com에서 답변하십시오.
편집하다:
SSH URL을 사용하기 위해 더 이상 공개 저장소에 대한 쓰기 액세스 권한이 없어서 원래 설명이 유효하지 않은 것으로 보입니다.
기발한:
HTTPS URL을 선호하는 주된 이유는 해당 리포지토리에 대한 쓰기 권한이없는 경우 SSH 리포지토리가 공개 리포지토리와 작동하지 않기 때문입니다.
그러나 프로덕션 서버에 배포 할 때는 SSH URL을 사용하는 것이 좋습니다. 여기서는 컨텍스트가 Heroku와 같은 서비스 일 것입니다.
방화벽으로 차단 된 경우 HTTPS를 통한 SSH 연결 사용
HTTPS 포트를 통한 SSH가 가능한지 테스트하려면 다음 SSH 명령을 실행하십시오.
$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.
그것이 효과가 있었다면, 훌륭합니다! 그렇지 않은 경우 문제 해결 안내서 를 따라야합니다 .
git@ssh.github.com
포트 443 을 통해 SSH로 연결할 수있는 경우 SSH 설정을 재정 의하여 해당 서버 및 포트를 통해 GitHub에 대한 모든 연결을 강제 실행할 수 있습니다.
ssh 설정에서 이것을 설정하려면에서 파일을 편집하고 ~/.ssh/config
다음 섹션을 추가하십시오.
Host github.com
Hostname ssh.github.com
Port 443
GitHub에 한 번 더 연결하여 작동하는지 테스트 할 수 있습니다.
$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.
에서 인증하는 GitHub의에 / HTTPS 포트를 통해 SSH를 사용하여
새로운 SSH 키를 생성하는 것보다 비밀번호를 더 주기적으로 변경하는 경향이 있기 때문에 SSH 키를 사용하여 인증하는 것이 덜 안전하다고 주장 할 수 있습니다.
SSH 키가 제공되는 수명을 제한하는 서버는 사용자가 SSH 키를 정기적으로 새로 고치는 연습을하도록 강제 할 수 있습니다.
어쩌면 뇌에서 암호를 훔치기가 어려워 컴퓨터에서 키 파일을 훔치기가 어려울 수도 있습니다 (적어도 내 지식으로는 이미 일부 물질이 있거나 방법이 있지만 이것은 무한한 토론입니다)? 그리고 암호를 사용하여 키를 보호하면 암호를 다시 사용하고 동일한 문제가 발생합니다 (그러나 일부는 키를 가져 와서 암호를 해독해야하기 때문에 더 많은 작업을 수행해야한다고 주장 할 수 있습니다).
참고 URL : https://stackoverflow.com/questions/11041729/why-does-github-recommend-https-over-ssh
'development' 카테고리의 다른 글
javadoc에서 메소드 매개 변수에 대한 참조를 추가하는 방법은 무엇입니까? (0) | 2020.03.15 |
---|---|
Java에서 함수 포인터를 대체하는 가장 가까운 것은 무엇입니까? (0) | 2020.03.15 |
“.NET Core”란 무엇입니까? (0) | 2020.03.14 |
OutputStream을 InputStream로 변환하는 방법? (0) | 2020.03.14 |
"Catch SyntaxError : Unexpected token o"가 계속 나타납니다. (0) | 2020.03.14 |