기초 지식이 어떻게 우리가 200만 번의 문제를 해결하는데 도움을 줄 수 있습니까
7620 단어 sshsecurityproblemsolvinglinux
카탈로그
2.1 정의
2.2 대칭 암호화
2.3 비대칭 암호화
3.1 SSH 및 Git 관리 서비스 사용
3.2 SSH 구성 파일
소개하다.
원격 서버를 조작하려면 컴퓨터에서 원격 서버로 연결할 수 있는 방법이 필요합니다.SSH가 그중의 하나야.
SSH는 원격 서버와의 안전한 연결을 지원하는 방법입니다.
이런 연결은 우리가 서버의 케이스를 직접 사용할 수 있게 한다.그곳에서 우리는 기계로 하는 것처럼 모든 임무를 할 수 있다.
다음 절에서 이 도구의 다른 용례를 토론하기 전에 나는 배경 지식을 되돌아보고 싶다.이 부분은 프로필이나 오류 메시지의 의미를 이해하는 데 도움을 줄 것입니다.구글에서 누군가의 마법 명령을 복제할 때도 우리가 무엇을 해야 하는지 확인할 수 있다.
배경 지식 : 암호화하다
지난 절에서 우리는 안전성을 언급했다.SSH를 사용하여 보안 연결을 설정할 수 있습니다.이를 위해 SSH는 서로 다른 암호화 알고리즘을 사용합니다.
정의
암호화의 고전적 정의를 찾을 수 있습니다 link.간단하게 보기 위해서, 나는 나의 판본을 사용하고 싶다.
암호화는 우리가 그것을 디코딩할 방법이 없으면 이해할 수 없는 형식으로 정보를 표현하는 것이다.
두 가지 암호화 알고리즘이 있는데 그것이 바로 대칭 암호화와 비대칭 암호화이다.
대칭 암호화
대칭 암호화는 암호화 알고리즘으로 그 중에서 암호화와 복호화 단계에서 하나의 키를 공유한다(복호화는 암호화의 역방향 과정이다).이 열쇠는 대화 쌍방의 비밀이다.
대칭 암호화는 정보 교환을 비밀로 한다.키를 가진 사람만이 정보를 복호화할 수 있다.
비대칭 암호화
대칭 암호화와 달리 비대칭 암호화 알고리즘은 두 가지 다른 키를 사용하여 정보를 암호화하고 복호화한다.모든 사람은 공개 키와 개인 키로 구성된 키 한 쌍을 필요로 한다.공개 키는 모든 사람에게 공개할 수 있지만, 개인 키는 모든 사람에게 개인적인 것이기 때문에 누구와도 공유할 수 없다.키 쌍의 키를 사용하여 정보를 암호화하면 같은 키 쌍의 다른 키만 암호화할 수 있습니다.
(개인 키와 개인 키 사이의 차이를 주의하십시오. 개인 키는 공유할 수 없습니다. 대칭 암호화 중인 개인 키는 쌍방 간에 공유할 수 있습니다.)
비대칭 암호화도 우리에게 대칭 암호화와 같은 안전성을 제공했다.만약 Alice가 Bob의 공개 키로 메시지를 암호화한다면, 그의 개인 키를 가진 Bob만 정보를 복호화할 수 있다.
또한 대칭 암호화로 사용할 수 없는 두 가지 추가 가능성을 제공합니다.
피쳐(*)는 서버에 누가 시스템에 연결되어 있는지 식별하는 데 도움이 되는 SSH의 중요한 기반입니다.이것은 서버가 연결을 수락하거나 거부할 수 있도록 합니다.SSH를 사용하여 인증하려면 암호가 필요하지 않습니다.반대로 모든 사람은 자신의 개인 키를 사용하여 서버에 연결하고 서버는 연결할 수 있는 사람의 목록을 추적한다(다음 섹션의 권한 부여 키 참조).비밀번호와 개인 키를 사용하는 두 가지 신분 검증 방법을 비교하는데 후자가 이긴다. 왜냐하면 다음과 같다.
SSH 사용의 실제 예
SSH 및 Git 관리 서비스 사용
GitHub 또는 GitLab과 같은 Git 호스팅 서비스를 사용할 때 HTTPS 또는 SSH 프로토콜을 사용하여 저장소를 복제, 푸시, 끌어낼 수 있습니다.
HTTPS를 사용하는 경우 밀어 당길 때마다... 사용자 이름과 비밀번호를 입력해야 합니다.
SSH를 사용하는 경우 GitHub/GitLab에 공개 키를 제공해야 합니다.그리고 매번 사용자 이름과 비밀번호를 입력해야 하는 것이 아니라 개인 키의 비밀번호만 입력해야 한다.만약 우리가 암호 단어를 사용하지 않는다면, 우리는 어떤 내용도 입력할 필요가 없다.GitHub은 공개 키를 사용하여 우리가 누구인지 확인하고 저장소를 읽거나 쓸 수 있는 권한이 있는지 확인합니다.
두 번째 방법은 우리가 매번 수동으로 사용자 이름과 비밀번호를 입력할 필요가 없기 때문에 더욱 편리하다.키에 대한 암호 구문이 설정되어 있지 않으면, 스크립트를 실행해서 밀기/당기기 명령을 실행할 수 있습니다.이를 통해 통합 및 배포 단계를 자동화할 수 있습니다.
SSH 구성 파일
SSH를 구성하려면 를 사용합니다.홈 디렉토리의 ssh 디렉토리입니다.SSH 프로토콜을 사용하는 중요한 파일이 있는 디렉토리입니다.이들은 승인된 키, 알려진 호스트 및 구성입니다.다음은 각 파일의 의미를 설명하고자 합니다.
예를 들어, 다음 텍스트를 파일 ~/에 저장할 때ssh/config
Host alias
HostName hostname
User username
IdentityFile ~/.ssh/private_key
다음 두 명령은 동일한 결과를 제공합니다.ssh alias
ssh username@hostname -i ~/.ssh/private_key
이 구성 파일을 사용하여 두 번째 GitLab 계정을 설정합니다.너는 교과서here를 볼 수 있다.질문에 대답하다
우리 처음의 문제로 돌아가자.개인 키가 안전하지 않을 때, 이 메시지를 볼 수 있습니다.
개인 키가 제대로 보호되지 않았을 때, 이것은 흔히 볼 수 있는 오류입니다.이론 부분에서 우리는 개인 키가 모든 사람에게 개인적이며 누구와도 공유되지 않는다고 말한다.이 경우 키의 권한이 644이므로 누구나 키의 내용을 읽을 수 있습니다.이것은 개인 키 원칙을 위반하고 오류를 초래했다.
문제는 명백하다. 우리는 문서의 권한을 제한해야 한다.소유자의 읽기 전용 또는 읽기/쓰기 권한을 사용할 수 있습니다.신기한 명령은:
chmod 400 ~/.ssh/[[PRIVATE KEY]]
또는 chmod 600 ~/.ssh/[[PRIVATE KEY]]
완성!마무리
SSH는 우리가 일상적으로 사용하는 프로토콜입니다.처음에 나는 Stack Overflow에서 찾은 명령을 맹목적으로 복사하고 붙여 넣었는데 그것이 작용하기를 바랐다.근데 왜 그런지 모르겠어요.더 복잡한 케이스를 구성해야 하거나 최근 GitLab CI/CD를 사용하고 있는 경우 매우 당혹스러웠습니다.기초 지식을 수정한 후에 저는 이제 SSH를 더 잘 이해했습니다.이 글을 통해 우리는 기초 지식과 실제 사용 간의 밀접한 관계를 볼 수 있고 문제를 처리할 때 더욱 자신감을 가질 수 있기를 바란다.
리소스
나는 다른 사람과 연락해서 너의 관점에서 공부하기를 기대한다.만약 네가 일찍이 "이것은 매우 일리가 있다!"너도 평론 구역에서 이 순간들을 공유할 수 있다.이것은 우리가 서로 공부하는 데 도움이 될 것이다.읽어주셔서 감사합니다!
Reference
이 문제에 관하여(기초 지식이 어떻게 우리가 200만 번의 문제를 해결하는데 도움을 줄 수 있습니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ddkhoa_blogging/how-basic-knowledge-helps-us-solve-a-2-million-views-question-24i1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)