개발계발

[2]ssh를 사용하여 서버 접속하기

냥냥친구 2019. 4. 1. 15:10

ssh는 내 컴퓨터에서 다른 서버로 접속하거나 파일 전송 등을 가능하게 하는 프로토콜이다.

예를 들어, 내 pc에서 aws 인스턴스 접속할 때 ssh를 통해 접속한다.

ssh 명령어는 아래와 같다.

$ssh ec2-user@<EC2 IP>

* ec2-user는 username으로, aws에서  Amazon Linux AMI를 사용하면 ec2-user가 된다.

그런데 접속하고 싶은 서버에 다 접속할 수 있는 것은 아니다.

내가 아무 서버에 막 들어갈 수 있으면 다른 사람도 막 들어올 수 있다는 거니까 당연히 막아뒀을 것이다.

이처럼 서버에 아무나 들어올 수 없도록 하는, 권한이 있는 사람만 접근할 수 있도록 하는 장치가 바로 키인증이다.

 

다시 말해, 내가 이 서버에 들어갈 권한이 있다는 것을 키인증을 통해 증명이 되어야만 접근할 수 있는 것이다.

그렇기 때문에 SSH 접속이전에 키를 먼저 만들어야 된다!

순서를 정리해보면 아래와 같다.

 

키 만들기 => 서버에 공개키 저장하기 =>

SSH명령어로 서버 접속 요청하기 => 키 인증을 통해 서버 접속하기(이건 서버가 하는일 )

 

키 만들기를 살펴보자.

 현재 디렉토리 위치 상관없이 아래 명령어를 입력하면 /home/<USER>/.ssh 디렉토리에 id_rsa와 id_rsa.pub이 만들어진다.

$ssh-keygen -t rsa

passphrase는 ssh 사용할 때마다 필요한 비밀번호인데 입력없이 엔터치면 비밀번호 없이 사용할 수도 있다.

 

id_rsa는 개인키id_rsa.pub은 공개키이다. 

공개키를 복사해서 서버에 저장해야 접근할 수 있는 권한이 생긴다.

 

그 서버는 현재 내가 접근할 수 없으므로 서버 관리자 또는 접근 가능자에게 요청해야 한다. 키 좀 넣어달라구...^_^

본인이 관리자라면 authorized_keys 파일에 공개키를 복붙하기만 하면된다^_^!

 

다른 서버로 파일 다운로드, 업로드 하는 scp 명령어도 ssh 기반 프로토콜이다.

즉, scp 명령어를 사용하려면 ssh 접근도 가능해야 함을 의미한다...^_^

 

'개발계발' 카테고리의 다른 글

[1]해시함수를 활용한 비밀번호 암호화  (0) 2019.03.23