[TIL] #10 SSH를 통한 원격 접속

phdljr·2023년 10월 17일
0

TIL

목록 보기
10/70
post-thumbnail

백엔드 서버를 EC2와 라즈베리파이 둘 중 어떤 컴퓨터를 사용하면 좋을지 생각하던 도중, 라즈베리파이를 사용했을 때 파일 전송과 원격 접속하는 방법에 대해 생각해보게 되었다.

그렇게 검색을 통해, SSH를 알게 되었다.


SSH(Secure Shell)

  • 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이를 활용하는 프로그램들을 의미
  • SSH는 UNIX 계정의 OS를 원격에서 제어하기 위한 방법

  • 클라이언트와 서버 사이에는 강력한 암호화 방법을 사용
    • 데이터가 중간에서 가로채도 해석 할 수 없는 암호화된 문자만이 노출됨

SSH 클라이언트

  • UNIX 계열의 OS(Linux, MacOS 등)은 기본적으로 SSH 클라이언트가 설치되어 있음
  • 윈도우는 Putty, Xshell같은 프로그램이 필요함

SSH 서버

  • UNIX 계열의 OS에서는 OpenSSH가 가장 많이 사용된다.
    • 이는 SSH 클라이언트와 서버를 포함한다.

SSH Key

  • 서버에 접속할 때, 비밀번호 대신 key를 제출하는 방식
    • 비밀번호 보다 높은 수준의 보안
    • 로그인 없이 자동으로 서버에 접속 가능
    • 비대칭키 방식으로 작동

SSH Key 만들기

  • Unix 계열에서는 ssh-keygen 프로그램을 이용
  • 윈도우는 SSH Client 프로그램이 자체적으로 젝오하는 키 생성 프로그램을 이용
ssh-keygen -t rsa
Enter same passphrase again: (비밀번호를 통해서도 로그인하고 싶다면, 여기다 입력. 아니면 그냥 엔터)
Your identification has been saved in /home/axl/.ssh/id_rsa.
Your public key has been saved in /home/axl/.ssh/id_rsa.pub.
The key fingerprint is:
0b:fa:3c:b8:73:71:bf:58:57:eb:2a:2b:8c:2f:4e:37 axl@myLocalHost
drwx------  2 egoing egoing 4096 Feb 18 18:54 .
drwxr-xr-x 16 egoing egoing 4096 Mar  1 06:02 ..
-rw-------  1 egoing egoing 1675 Feb 18 18:51 id_rsa  // private key
-rw-r--r--  1 egoing egoing  395 Feb 18 18:51 id_rsa.pub // public key -> 이거를 원격 서버로 옮겨야 됨
-rw-r--r--  1 egoing egoing 2216 Feb 19 18:34 known_hosts
  • 파일을 간단하게 전송시킬 수 있는 방법은 scp 명령어를 사용하는 것이다.
scp (보낼 파일 경로) (원격 컴퓨터 주소(호스트명@주소[:받은 파일을 저장시킬 경로]))

  • 서버는 공개키를 ~/.ssh/authorized_keys로 저장해야 한다.
mkdir ~/.ssh
chmod 700 ~/.ssh # 중요한 디렉터리이기 때문에, 소유자만 접근할 수 있게 권한 설정
cat (공개키 파일) >> ~/.ssh/authorized_keys
  • 이제 ssh 명령어를 통해 접속하면 된다.
    • 클라이언트에 비밀키가 ~/.ssh에 존재한다면, 바로 접속이 될 것이다.

      ssh ssh-server@egoing.net
    • 비밀키가 다른 위치에 존재한다면, -i 옵션을 통해 경로를 입력해주면 된다.

      ssh -i (비밀키 경로) ssh-server@egoing.net
profile
난 Java도 좋고, 다른 것들도 좋아

0개의 댓글