SSH란?
Secure Shell Protocol, 사용자가 원격 서버에 접속할 수 있도록 허용해주는 remote administration protocol이다.
SSH 작동원리
SSH명령어는 3부분으로 구성된다.
ssh {user}@{host}
SSH key 명령어는 시스템에 encrypted Secure Shell Connection을 open하고 싶다고 지시한다.
{user}는 접근하고자 하는 계정이다. system administrator와 동일한 권한을 사용하려면 root user로 접근할 수 있다.
{host}는 접근하고자 하는 server이다. IP Address 또는 domain name일 수 있다.
enter를 치면, 계정의 password를 확인하는 prompt가 뜬다.
Encryption Techniques
- Symmetrical encryption
- Asymmetrical encryption
- Hashing
Symmetric Encryption 대칭암호
client와 host 사이 메시지의 암호화, 복호화에 secret key가 사용된다. key를 소유한 자는 누구나 message를 복호화할 수 있다.
Symmetric encryption은 종종 shared key 또는 shared secret encryption이라고 한다. 하나의 키만 사용하며, 때때로 하나의 키로 쉽게 계산되는 다른 키와 함께 쌍으로 사용한다.
key는 절대 client와 host 사이에 전송되지 않는다. 대신에, 양쪽이 데이터를 공유하여 exchange algorithm으로 각자 secret key를 계산한다.
Asymmetric Encryption 비대칭 암호
양쪽 별개의 key를 사용한다. public key와 private key이다.
public key는 암호화된 메시지를, 특정 private key를 가진 server가 복호화하는데 사용한다.
연결 시작 전, 양쪽은 임시 public-private key pair를 생성하고, 공유 secret key를 생성하기 위해 각자 private key를 공유한다. connection이 생성되면, server는 client에 public key를 전송한다. client가 성공적으로 복호화 했다는 건, 연결에 필요한 private key를 잘 갖고 있다는 뜻이다.
Hashing
한 방향 hash함수는 복호화되지 않는다.
SSH와 암호기술의 작동원리
SSH는 TCP port 22에서 기본 동작한다. host는 port22를 listen한다. client권한으로 secure connection을 정리하고, 인증되면 shell environment를 연다.
'Git' 카테고리의 다른 글
GitLab CI/CD] 2. Job(.gitlab-ci.yml) 등록하여 실행하기 (0) | 2022.08.24 |
---|---|
GitLab CI/CD] 1. GitLab Runner 설치 등록하기 (0) | 2022.08.24 |
Git 개념 이해하기 (0) | 2022.06.22 |
Git] Command Line으로 실수를 되돌리는 17가지 방법![3] - rebase, fixup (0) | 2022.06.22 |
Git] Command Line으로 실수를 되돌리는 17가지 방법![2] - reflog, cherry-pick (0) | 2022.06.21 |
댓글