본 포스트에서는 ssh 암호/패스워드 방식의 로그인이 아닌, 비대칭키 기반의 인증 로그인 방법에 대해 알아보자.
SSH를 로그인 하는 방식에는 두 가지 방식이 있습니다. 1.암호를 직접 입력해 로그인 2.비밀키와 공개키를 서버와 클라이언트가 나누어 키 방식으로 인증한다. 간단하게 설명하자면 최근 모두 어떤 도어락으로 번호키를 입력하고 들어갈지(비밀번호 입력), 지문인식이나 카드키처럼 특정 방식으로 들어갈지(키 방식)의 차이점입니다. 먼저! 키 입력 방식을 사용하면 좋은 점이 ssh 자동 로그인이 가능하다는 점입니다. 그리고 위의 예시를 보면 누구나 알 수 있는 비밀번호보다는 자신만이 가지고 있는 키를 이용해서 접속하면 보안상 안전합니다.Ssh 자동 로그인이 가능하다면 셸 명령어로 다른 서버의 내용을 간단하게 백업할 수 있습니다. 향후, 몇개의 스크립트에서는 ssh 자동로그인을 필요로 하는 경우가 있기 때문에, 적용해 두는 것이 바람직합니다. 1. 대략적인 이론 설명 모든 암호화 방식에 사용하는 키는 공개키(Public Key)와 비밀키(Private Key)로 나に分か니다. 그리고 키를 작성하면 반드시 짝이 되어 작성됩니다. 공개열쇠는 말 그대로 누구나 가질 수 있는 열쇠입니다. 그래서 접속하는 서버에 심어 둘 수 있습니다.반면, 비밀키는 사용자가 가지고 있는 키이며, 누출되면 위험합니다. 누구에게도 공개해서는 안 되며 본인만 가지고 있어야 합니다. (이름부터 비밀열쇠는 아니에요)아니면 제가 Putty라는 프로그램을 이용해서 연결하고 싶다면 비밀키는 제가 가지고 있고, 공개키를 앞으로 연결할 서버에 심어두면 됩니다. 접속하는 서버가 여러 대 있으면 여러 대의 서버에 그 공개 키를 입력하면 됩니다. 마치 자물쇠 같아요. 이 자물쇠는 특수 자물쇠와 같고 열쇠(비밀키)는 하나이지만 열 수 있는 같은 키(공개키)를 여러 개 만들 수 있습니다. 이 자물쇠를 사물함(서버)에 걸어놓고 사용할 수 있죠? 만약 다른 사물함에도 물건을 보관하고 싶다면 다른 사물함에도 열쇠를 걸어두면 되니까요. SSH 로그인 방식이 아닌 모든 보안 인증서 방식은 이렇게 보안 키와 공용 키로 나。니다. 비슷한 원리로 작동합니다.
셸을 사용하는 환경에서 SSH 접속하는 경우입니다.기본적으로 같은 Linux라도 다른 Linux시스템으로 연결할 경우 스크립트를 몇 줄 당겨야 자동 로그인할 수 있습니다. 아래의 명령어는 SSH 서버가 아닌 접속하는 셸 환경(클라이언트)에서 실행해야 하는 내용입니다. 일반적인 상황에서 로그인하려면 이렇게 명령어를 사용합니다.
이후에 비밀번호를 입력하고 제대로 비밀번호가 입력되면 로그인이 됩니다. 이렇게비밀번호를입력하고로그인하는방식을조금변경해서키방식으로바꿔보도록하겠습니다. 참고로,스포어호스팅에서사용가능한커맨드입니다.
ssh-keygen 명령을 이용하여 rsa 방식으로 키를 생성합니다.
엔터라고 쓰여져 있는 부분은 기본 설정을 사용하기 위해 공란으로 두는 것이 좋기 때문에 써 있습니다. (RandomArt 이미지는 임시편집) 이렇게 생성했다면 생성된 파일을 확인해 봅시다.
여기에들어있는파일을확인하면4개의파일이있습니다. authorized_keys=>공개키 정보를 저장하는 파일(600)id_rsa=>개인키(600)id_rsa.pub=>공개키(644)known_hosts=>다른 서버에 액세스할 때 서버 인증 정보를 저장(fingerprint)(644)참고로 보안상의 퍼미션을 변경하면 됩니다만, 보통 키를 생성하면 자동으로 퍼미션도 동시에 설정됩니다. 뒷자리 숫자는 퍼미션입니다. 또, .ssh 폴더는 700으로 설정하는 것이 바람직합니다. (물론 자동으로 셋팅됩니다.) 이제부터 이 중에서 공개키를 접속하는 서버에 전송합니다. RSync 명령을 활용합니다.
또는sp명령을활용하셔도됩니다.
이렇게 하면, 지금부터 접속하는 서버에 공개키가 카피됩니다. 이 때 주의할 점은 공용 키가 복사되는 위치가 home 폴더 안의 .ssh 폴더여야 합니다. 앞으로 접속하는 서버에서 해야 할 일입니다. 복사된 공용 키의 내용을 서버의 authorized_keys 파일 안에 병합(추가)해야 합니다.아래의 명령어로 복잡하게 에디터를 열어 수정할 필요없이 간단하게 추가할 수 있습니다.
이제 모든 작업이 완료되었습니다.다시 클라이언트로 돌아가서 아래의 명령어를 실행해 주세요.
이제 비밀번호 없이도 연결할 수 있습니다.
당연한 얘기지만 PuTTY나 Xshell과 같은 프로그램에서도 키 생성에 더 쉽게 로그인할 수 있도록 설정할 수 있습니다.여기서는 제가 사용하고 있는 메인 프로그램인 Xshell을 이용하여 SSH 자동로그인을 시도해 보겠습니다. 우선, 호스트 주소를 입력합니다.
>
그리고 왼쪽 범주에서 접속 > 사용자 인증으로 이동합니다.
>
여기서 방법으로 Public key를 선택합니다.
>
키를 생성하기 전에 사용자 이름부터 입력하고 시작해야 합니다. 그렇지 않으면 키 생성이 엉뚱하게 됩니다.그리고 아래의 사용자 키 부분에서 검색 버튼을 누릅니다.그러면 아래와 같이 아무런 키가 없는 상태인데, 여기서 생성 버튼을 눌러서 사용자 키를 생성할 수 있습니다.
>
아래는 작성 과정이며 기본 설정인 채로 두셔도 됩니다. 아래와 같이 키가 작성된 것을 알 수 있습니다.
>
여기서 해당 키를 선택하고 등록정보를 눌러서 공개키를 받아보겠습니다. 위의 공용 키를 파일에 저장한 후 \home/.ssh/폴더에 복사하여 병합하거나 박스 안에 ssh-rsa로 시작하는 부분 전체를 연결하는 서버의 authorized_keys 파일 안에 추가로 넣어두면 됩니다. (본문 내용 참고) → 참고. Moba Xterm 에서는 아래의 "use private key"에 대한 설정으로 서버에 접속할 수 있다.
>
1비대칭키 2SSH 3패스워드 없이 SSH인증 4암호 없이 로그인