Tech Stock logo Tech Stock

■ 일단 옵션 정리

-t 타입 : 암호화 타입을 지정한다

  • rsa1 : RSA(ssh버젼1)
  • rsa : RSA(ssh버젼2)
  • dsa : DSA(ssh버젼2)

-p : 패스 플레이즈를 변경한다
-f 파일명 : 열쇠 파일을 지정한다
-R 호스트 : 지정한 호스트의 열쇠를 known_hosts파일로부터 삭제한다.

보통 ssh-keygen -t rsa 를 많이 쓰는것 같다.
ssh-keygen -t rsa -C “abc@abc.com” 이렇게 -C옵션으로 커맨트도 남길수 있다

■ 개념

클라이언트 PC에서 ssh-keygen을 치면 공개키와 비밀키 한쌍이 생성된다.
공개키(pub)의 내용을 접속할 서버 PC의 접속할 유저 디렉토리
~/.ssh/authorized_keys
이곳에 저장하면, 그담부턴 서버에 비번없이 키(비밀키) 로써 접속이 가능하다.

접속할 서버에 공개키를 복사하고, 로컬에서는 비밀키로써 접속.
막장 드라마에서 주인공 남녀가 반으로 쪼개진 목걸이를 만나서 맞춰보는??
아주 쉽게 이야기 하면 그런식인거다.. ㅋㅋㅋㅋㅋ

■ 클라이언트 컴터에서의 작업

ssh-keygen -t rsa -C "hello@hello.com"
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/hello/.ssh/hello_key
Enter passphrase (empty for no passphrase): 

hello_key와 hello_key.pub이 생성됨
pub의 파일의 내용을 서버쪽에 ~/.ssh/authorized_keys 등록하면 된다.
(hello라는 유저라면 서버쪽에서 /home/hello/.ssh/authorized_keys 가된다)

■ 서버 쪽에서의 작업

일단 유저를 추가하고 패스워드 지정해주자

useradd hello
passwd hello

.ssh디렉토리와 그 디렉토리 안에 authorized_keys를 만든다

mkdir /home/hello/.ssh
touch /home/hello/.ssh/authorized_keys

파일과 디렉토리에 퍼미션 설정을 하자

chmod 600 /home/hello/.ssh/authorized_keys
chmod 700 /home/hello/.ssh

authorized_keys에 로컬에서 만들어둔 공개키(pub) 내용을 복사한다.
복붙하고나서 ctrl+d를 눌러서 저장하고 나온다.

cat >> ~/.ssh/authorized_keys

■ 접속은 이런식으로 (클라이언트의 비밀키를 -i옵션으로 지정해준다.)

서버쪽에는 클라이언트의 공개키 내용이 authorized_keys에 담겨있고
클라이언트에서 접속할때는 클라이언트의 비밀키를 이용해서 접속한다.
ssh-keygen을 할때 비밀번호를 지정했을 경우. 비밀번호를 입력해야한다

ssh -i "hello" hello@11.11.11.11

■ 접속을 조금 편하게

.ssh안에 config파일을 만든다. (클라이언트쪽)

cat ~/.ssh/config

Host ec2
    user         hello
    HostName     11.11.11.11
    Port         22
    IdentityFile hello

이제 접속할때 무지 편하다

ssh ec2