Tech Stock logo Tech Stock

■ 상황

AWS EC2인스턴스 생성할때 페어키 생성을 한다.
xxx.pem을 키파일로 지정하고, 유저는 ec2-user일것이다.
그렇게 접속을 해서 공부한다

그런데….

복수의 유저가 접속하여 AWS공부를 위해 인스턴스에 접근해야 하거나,
인스턴스를 Git리모트 리포지토리로 사용하고 싶거나 할때.
그리하여 여러 유저들을 작성하고 각각의 유저가 SSH접속을 해야 할 때.
혹은 ec2-user 이외의 유저로 접속해보고자 할 때

그런분께 도움이 되고자….
(어디까지나 내가 잘 까먹어서임 -_-;;;)

  • 주인공 amazon ec2
  • 조연 Gitbash
  • 엑스트라 windows

클라이언트가 windows환경에서 gitbash를 이용해서 ec2인스턴스에 접속하고자 하는 상황임.


일단, 언제나~~ 처럼 ec2-user로 접속을 하자

유저를 만든다.(mike라는 유저를 만들었다) 비번을 설정해준다

sudo adduser mike
sudo passwd mike

만든 유저로 유저 스위칭을 해준다
스위칭 하면 그 유저의 홈 디렉토리일것이다. 확인해본다

su - mike
pwd
/home/mike

.ssh디렉토리를 만들고, 그안에 authorized_keys라는 파일을 만들어준다.
(권한변경은 나중에..)

mkdir ~/.ssh
touch ~/.ssh/authorized_keys

만든유저(mike)로 ec2에 접속을 위해서는
클라이언트pc(wnidows)에서 ssh-keygen을 해야하고.
그중 public키의 내용을 ec2의 mike유저 홈 디렉토리의 .ssh디렉토리의 authorized_keys에 복붙을 해야한다

클라이언트pc의 public키 내용이 ec2의 /home/mike/.ssh/authorized_keys에 있어야함.
그 작업을 위에서 미리 해놓은 것임


이제 클라이언트 pc(windows)에서 작업을 좀 하자

gitbash를 실행시키고, .ssh로 이동하자

cd ~/.ssh

SSH키를 만든다.
어디다 만들꺼냐고 물어보면 절대경로로 지정하고 파일명도 지정한다.
(밑의 예시는 /c/Users/mike/.ssh/ 경로에 mike라는 파일로 만들라고 지정함) 비밀번호는 입력하고 싶으면 해도 되고 안해도 되고~

ssh-keygen -t rsa 
Enter file in which to save the key (/c/User/mike/.ssh/id_rsa): /c/Users/mike/.ssh/mike
Enter passphrase (empty for no passphrase): 

이렇게 하면 지정한 디렉토리에 지정한 파일이(mike)생기는데

  • mike
  • mike.pub

이렇게 2개가 생겼을 것이다. 이중 pub인파일의 내용을
아까 위에서 작업한 ec2인스턴스의 mike유저의 /.ssh/authorized_keys에 복붙하면 된다


■ 본격적인 복붙

  • 현재 만든 mike.pub의 내용을(gitbash) cat해서 복사

이런식으로 길게~~ 나온다

cat mike.pub
ssh-rsa sdlfjdlkjfldaoieriuieuroieurioeurldsajflkdjsflkjdslfkjdslkfjdslkjasdlfjdlkjfldaoieriuieuroieurioeurldsajflkdjsflkjdslfkjdslkfjdslkjasdlfjdlkjfldaoieriuieuroieurioeurldsajflkdjsflkjdslfkjdslkfjdslkjasdlfjdlkjfldaoieriuieuroieurioeurldsajflkdjsflkjdslfkjdslkfjdslkj

  • 다시 아까 접속해둔 ec2쪽으로 돌아가서
  • /home/mike/.ssh/authorized_keys 에 붙혀넣기
    cat >> ~/.ssh/authorized_keys
    #붙혀넣기가 끝나고 ctrl + d 를 눌러서 종료한다
    

■ 권한변경

.ssh는 700권한을, authorized_keys는 600권한을 각각 부여한다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

■ 접속 테스트

windows의 gitbash환경에서 접속해보자.

형식 : ssh -i “비밀키파일” 접속유저@접속도메인

ssh -i "mike" mike@ec2-10-10-10-10.ap-northeast-5.compute.amazonaws.com

■ 접속을 조금 편하게

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

cat ~/.ssh/config

Host ec2
    user         mike
    HostName     ec2-10-10-10-10.ap-northeast-5.compute.amazonaws.com
    Port         22
    IdentityFile mike

이제 gitbash에서
일케만 치면 편하게 접속이 가능하다.

ssh ec2

만세~~

hehe