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 |
---|