ssh 키 인증 방식으로 로그인하기

정보/뉴스

ssh 키 인증 방식으로 로그인하기

담운 0 1,659 2019.06.06 16:32

기본적으로 외부 서버에 ssh 접속을 하게 되면 비밀번호 인증을 하게 된다. 비록 간단하고 단순한 방법이지만, 비밀번호가 네트워크를 통해 교환된다는 치명적인 문제점을 가지고 있다.

이런 위험을 피하고자 공개키와 비밀키를 이용한 "공개키 인증" 방식을 주로 사용한다.

우선 현재 자신의 pc에 공개키와 비밀키 쌍을 생성하여야 한다.

사용자 PC는 Mac OS X 환경, 서버 PC는 Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.

$ ssh-keygen

위의 명령어를 실행하면 우선 저장 경로(키 파일 이름도 정할 수 있음)와 passphrase를 물어본다. passphrase는 키를 위한 일종의 비밀번호로 키가 유출되더라도 비밀번호를 모르면 사용할 수 없으므로 조금 더 보안성을 높일 수 있다. 하지만 필수는 아니므로 미입력 후 그냥 Enter 를 눌러도 된다.

절차를 끝내면 [키 이름][키 이름].pub 이라는 키 쌍이 생성된다. 저장 경로를 별도로 설정하지 않았다면 id_rsa, id_rsa.pub 라는 이름으로 생성되었을 것이다.
이름에서 알 수 있듯이 .pub로 끝나는 파일은 공개키 파일이기 때문에 유출되어도 아무 상관없지만, 나머지 하나는 비밀키이므로 절대 유출되어서는 안된다.

이제 이 공개키를 서버에 등록하여야 한다. 이 때 scp 명령어를 이용한다.

$ scp id_rsa.pub jupiny@52.78.151.36:/tmp/

이 공개키를 인증할 때 사용하기 위해 키의 내용을 ~/.ssh/authorized_keys 라는 파일에 추가하여야 한다. 만약 서버에 해당 파일이 없다면 직접 만들도록 한다.

$ ssh jupiny@52.78.151.36
$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

그리고 해당 사용자 외에는 .ssh 디렉토리 내의 모든 파일을 읽고 쓸 수 없도록 권한을 설정한다.

$ sudo chown -R jupiny:jupiny # 소유자를 해당 사용자, 그룹을 해당 사용자 그룹으로 설정
$ sudo chmod 700 ~/.ssh # 소유자만 해당 디렉토리 읽기, 쓰기, 접근 가능
$ sudo chmod 600 ~/.ssh/authorized_keys # 소유자만 해당 파일 읽기, 쓰기 가능

하나의 키에 대해서 특정 명령어만 실행할 수 있게 설정도 가능하다.
~/.ssh/authorized_keys 파일을 연 후,

$ vim ~/.ssh/authorized_keys

아래와 같이 해당 공개키 앞에 특정 명령어열을 추가해주면 된다.

command="scp -f /var/log/access.log" ssh-rsa AAA...  

이렇게 설정하면 해당 비밀키로는 /var/log/access.log 파일을 scp 명령어로 복사해오는 것 밖에 하지 못하게 된다.

$ scp -i ~/.ssh/id_rsa jupiny@ 52.78.151.36:/var/log/access.log ~/

출처

Comments

번호 제목 글쓴이 날짜 조회
72 과연 양방향매매로 수익낼 수가 있는가… 댓글+1 담운 2020.05.14 2732
71 [해외선물] 실시간 시세신청 안내-지… 담운 2020.05.11 868
70 해외선물 실시간 시세 무료로 볼 수 … 담운 2020.05.10 1390
69 DB금융투자, 수수료 혜택 등 해외선… 담운 2020.04.02 770
68 위험 고지 담운 2020.03.31 760
67 리스크 고지 담운 2020.03.11 762
66 해외선물 증거금 담운 2019.10.20 1061
65 CME E-micro 담운 2019.10.20 1011
64 파생상품 양도소득세 확정신고 안내 담운 2019.09.25 1088
63 주식, 암호화폐, 해외주식 세금 비교 담운 2019.09.13 1066
62 해외선물옵션 API 시세 유료화 정책… 담운 2019.08.28 2158
61 Github에 ssh키 생성하고 등록… 담운 2019.06.08 1375
60 github-white-logo-70… 담운 2019.06.08 1406
59 ssh-key 생성 및 github,… 담운 2019.06.08 1910
58 Git 서버 - SSH 공개키 만들기 담운 2019.06.08 1569
57 Nodejs로 구현한 서비스를 Caf… 담운 2019.06.08 6160
56 GitHub SSH 키 생성 및 등록… 담운 2019.06.08 1732
55 기타 Git 명령어(cherry-pi… 담운 2019.06.08 1181
54 Merge와 Rebase 담운 2019.06.08 1304
53 Git 브랜치(Branch) 관리 담운 2019.06.08 1546
52 Git commit 수정하기, dif… 담운 2019.06.08 1361
51 Github 사용하기, remote,… 담운 2019.06.08 1838
50 Git 저장소 생성(init), 최초… 담운 2019.06.08 1433
49 Git 설치와 사용법(Git Bash… 담운 2019.06.08 1518
48 node.js git 사용법 담운 2019.06.08 1664
47 Windows에서 git 및 node… 담운 2019.06.08 1592
46 Nodejs로 구현한 서비스를 Caf… 담운 2019.06.08 1564
45 Git 활용 (기본적인 사용법) 담운 2019.06.08 1438
44 cafe24 nodejs git 저장… 담운 2019.06.08 4851
43 카페24 node.js 접속준비 담운 2019.06.08 2031
42 cafe24 node.js git 사… 담운 2019.06.08 3951
41 GitHub - 소스트리(Source… 담운 2019.06.07 2064
40 Sourcetree 설치 가이드 담운 2019.06.07 1306
39 [Git] 소스트리 (SourceTr… 담운 2019.06.07 1625
38 GitLab 업무환경 구성 가이드 담운 2019.06.07 1570
37 Git :: 소스트리(SourceTr… 담운 2019.06.07 1465
36 cafe24 에서 nodejs hos… 담운 2019.06.06 1999
35 카페24 node.js 접속준비 담운 2019.06.06 3247
34 카페24에서 Node.js 서버로 A… 담운 2019.06.06 1715
열람중 ssh 키 인증 방식으로 로그인하기 담운 2019.06.06 1660
Category
State
  • 현재 접속자 29 명
  • 오늘 방문자 65 명
  • 어제 방문자 114 명
  • 최대 방문자 608 명
  • 전체 방문자 174,291 명
  • 전체 게시물 145 개
  • 전체 댓글수 1 개
  • 전체 회원수 3 명
Facebook Twitter GooglePlus KakaoStory NaverBand