SSH 연결

SSH 는 로컬과 원격지 간의 통신을 하는 프로토콜의 하나로, 원격지의 쉘을 사용할 수 있게 해 줍니다.

SSH를 통해 통신을 하려면 적격한 자격을 가졌다는 인증이 필요하고, 이 인증의 방법에는 여러 종류가 있습니다. 그 중 대표적인 것을 꼽아보자면 (1) 계정 - 비밀번호를 이용한 인증 (2) key를 이용한 인증 두 가지가 있습니다.

이번 포스트에서는 SSH key를 발급하고, 이를 이용해 SSH 연결하는 방법을 알아보도록 하겠습니다.

SSH key 발급

로컬 컴퓨터에 SSH 클라이언트가 설치되어있다는 전제 하에 진행합니다.

SSH key는 공개키와 개인키로 이루어져있습니다.
SSH key를 발급받기 위해서는 터미널 창을 연 뒤 ssh-keygen 명령어를 입력해줍니다.

1
ssh-keygen -t rsa

생성된 키는 윈도우 10 기준, C 드라이브 > 사용자 > user > .ssh 폴더 아래에 저장됩니다.

이 중 id_rsa.pub 이 공개키, id_rsa 가 개인키에 해당됩니다.

원격지에 SSH 키 넣기

이제 원격지에 위에서 발급한 SSH 공개키를 넣어주겠습니다. 이 단계를 조금 더 정확히 설명하자면, 원격지에 “신뢰할 수 있는 접근 키” 목록에 나의 키를 넣어주는 것입니다.

원격지는 리눅스 서버입니다. 리눅스의 경우 사용자의 home 디렉토리 > .ssh 폴더 > authorized_keys 파일 에 신뢰할 수 있는 키를 보관합니다.

본인의 로컬에 있는 id_rsa.pub 파일 안에 기재된 키를 원격지의 authorized_keys 파일 안에 기재해줍니다.

그리고 본 SSH 연결을 끊고, 다시 연결하면 이제 계정 로그인 없이 바로 접속이 됩니다.

프로그램 별 사전 설정

SSH 접속 프로그램 별로 사전 설정을 해줘야 할 때도 있습니다.

예를 들어 MobaXterm은 SSH 연결 설정에서 아래 사항들을 넣어줘야 합니다.

(1) 원격지 IP
(2) 접속 계정
(3) 포트
(4) 개인키 경로 => 중요!

VScode SSH 세팅에서 또한 MobaXterm과 같이 해당 정보를 넣어줘야 합니다.

설정이 완료되면 해당 ssh 접근시 평소 계정으로 로그인하는 것과는 다르게 key 로 인증하는 모습을 볼 수 있습니다.

Key 방식 인증의 장단점

– 장점 : 접속 계정명과 비밀번호가 노출될 가능성이 매우 적다.
– 장점 : 자주 접속하는 경우 계정을 입력하지 않아도 되므로 효율적이다.
– 단점 : 처음 이용시 세팅이 필요하다.

Reference

https://heekangpark.github.io/ssh/01-introduction
https://hbase.tistory.com/9
https://oingdaddy.tistory.com/453#google_vignette