EtoC

SSH 본문

ETC/기타 공부

SSH

게리드 2023. 7. 31. 23:40

오늘은 인턴 첫날~ 떨리는 마음으로 회사에갔다
오후 두시반에 미팅을 잡았기에 첫날이라 많이 배우지 못 할 줄 알았는데, 초기세팅부터 많은것을 알려주셨다.
(git-Fork, Sem Ver, ssh를 이용한 git 레포지토리 접근, git subModule, bitBucket, SSH 등..)
그중 오늘의 목표는 SSH와 bitBucket, NVM으로 노드 버전 낮추고 ProseMirror과제파일 실행하기였다.

오늘한것 중 한번도 해보지않았던것은 SSH라서 오늘의 배운것으로 골랐다.

1.SSH

Secure Shell(암호화된 셀)의 약자로, 네트워크를 통해 안전하게 원격으로 다른 컴퓨터에 접속하고 명령을 실행하는 프로토콜 및 프로그램이다.

즉, 암호화를통해 데이터를 보호하고 무단접근을 방지하여, 원격으로 안전하게 접속하여 작업할 수 있도록 해주는 중요한 보안 도구이다.

SSH의 특징

1.암호화

SSH는 데이터 전송 중에 암호화 기술을 사용하여 데이터를 보호한다.
때문에 데이터가 네트워크를 통해 전송되는 동안 무단 접근을 방지하고 데이터의 안전성을 보장할 수 있다.

2. 인증

SSH는 강력한 인증 메커니즘을 제공하는데, 클라이언트와 서버 간에 인증을 통해 무단 접근을 방지한다.
일반적으로 SSH는 공개키-개인키 방식을 사용하여 서버와 클라이언트가 서로를 인증하고 안전하게 접속할 수 있다.

3. 무단 접근 방지

SSH는 원격 접속 시 무단으로 접근하는 것을 방지하기 위한 다양한 기능을 제공한다.
이는 비밀번호 시도 횟수 제한, 접속 IP 제한, 사용자 액세스 제어 등을 포함한다.

4. 포트 포워딩(Port Forwarding)

SSH를 통해 로컬 포트와 원격 포트를 연결시키는 포트 포워딩 기능을 사용할 수 있다.

포트포워딩?
네트워크 트래픽을 특정 포트에서 받아들이는 장치를 다른 포트로 전달하는 네트워크 설정이다.
포트포워딩을 사용하면 인터넷이나 로컬 네트워크에서 서비스가 제공되는 서버를 뒷단에 숨길 수 있고, 여러 대의 서버가 하나의 공용 IP 주소를 공유할 수 있다.
⛔️ 주의
포트 포워딩은 불필요한 포트를 외부로 열어둘경우 보안에 취약하며, 악의적인 공격자에 의해 노출될 수 있다.
따라서 포트 포워딩 설정 시에는 필요한 포트만 열어두고, 보안 설정을 강화해야한다.


SSH 키 만들기

1. ssh 디렉토리에서 키 확인하기

cd ~/.ssh
ls

맥북이면 자동적으로 키가 있다는 글을 봤느데 나는 없었다.
.pub 파일이 존재한다면 ssh키가 존재하는것이다.

2. ssh-keygen으로 키 생성하기

ssh-keygen -t rsa -b 4096 -c "sample123@email.com"

위의 명령어는 RSA 알고리즘으로 4096비트의 SSH 키를 생성한다.
엔터를 누르면 기본 경로(~/.ssh/id_rsa)에 개인 키(private key)와 공개 키(public key)가 생성되며, 공개키는 .pub 확장자가 붙는다.

3. SSH 공개키 등록하기

ssh-copy-id user@remote_server

SSH 키를 발급한 후에는 원격 서버에 공개 키를 등록해야하며, 등록한 공개키는 해당 서버에 접속할 때 인증에 사용된다.

원격 서버에 접속하여 ~/.ssh/authorized_keys 파일에 공개 키를 추가하거나, ssh-copy-id 명령어를 사용하여 공개 키를 원격 서버로 복사하면 된다.

4. 저장 위치 정하기

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):

나는 자동적으로 지정해주는 경로에 만들었다.
그냥 enter 치면 .ssh안에 만들어진다.

5. 비밀번호 설정하기

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

비밀번호를 두번 입력하는데, 내옆의 팀원분은 아무것도 입력하지않고 엔터를 두번쳤는데 입력이 완료됬다고떴다.
신기한게 맥북의 지문으로 비밀번호가 지정되었다.(나는 비번치는데 이분은 지문인식..ㄷㄷ)

6. SSH 키 생성 완료

그러면 아래와같이 SHA256: 엄청나게긴 코드가 나타난다.

The key fingerprint is:
SHA256:엄청나게긴 알수없는문장 sample123.com@email.com
The key's randomart image is:
+--[RSA 4096]-----+
|      ..*oXo     |
|     . +o*.=     |
|    ...o+o=o     |
|   .  +o=+o+.    |
|.o  .o +S=. ..  .|
|+ .o+   + ..  E o|
|.o.o.    .   . o |
|..+              |
|.o..             |
+----[SHA256]-----+

7. 개인키와 공개키

개인키 확인

cat id_rsa

생성된 id를 입력하면 아래와같이 개인키가 출력된다.
이 키는 공개되면 안되기때문에 잘 생성되었는지 확인만 하자.

-----BEGIN OPENSSH PRIVATE KEY-----
개인키 내용
-----END OPENSSH PRIVATE KEY-----

공개키 확인

cat id_rsa.pub

위와같이 생성된 id에 .pub를 붙이면 공개키가 출력된다.

ssh-id 공개키내용

이제 출력된 공개키를 github이나 bitBucket에 등록하여 사용하면 된다.


Git에 SSH 등록하기

  1. 나의 프로필을 누르고 설정(setting)에 들어간다.
  2. SSH and GPG keys 클릭
  3. New SSH Key를 누르고 들어가면 사용할 키의 이름을 설정하고 출력된 공개키를 입력하여 생성한다.
  4. 등록된 key가 보여진다.

BitBucket에 SSH 등록하기

  1. 프로필 이미지옆의 설정버튼의 personal bitbucket settings 클릭
  2. SSH keys 클릭
  3. ADD key 클릭 후 등록 하면 끝

📝

SSH가 보안키라는 것만 알고있었지 실제로 써보는것은 처음이였다.
사수분께서 옆자리에 함께하셨지만 이정도는 스스로 해봐야할거같아서 찾아서 해봤는데
이게 맞나싶하며 팀원과 서로 비교하고 정보를 공유하면서 진행하였다.
지금 다시보니 되게 간단한데 서로 "이거맞음?" "이건?"" 했던게 기억에남는다.
사수님께서 이렇게 사이가 좋은 팀은 처음 본다고하셨는데 서로 겁이 많은거같기도..ㅎㅎ
계속하다보면 이런 겁쟁이같은면이 사라지는 날이 오겠지?

아무튼 오늘은 정말로 회사에 첫발을 내딛은 느낌이라서 좋았다.