본문 바로가기

Linux

SSH 자동 로그인 (ssh 키를 이용한)

ssh 를 통해 Linux / Unix에 로그인 할 일이 있다.

이 때 있어서 아래와 같은 경우 자동 로그인 하고 싶어진다

1. 일일이 비밀번호를 누르기 싫거나

2. 관리자가 자주 암호를 변경하는 경우 

암호 때문에 쪼매 골치 아프다

그러면 ssh 키를 이용하여 자동 로그인 하고 싶어진다.

 

그 방법을 설명한다.

 

키를 만들면 비공개키와 공개키가 생긴다

비공개키를 내 컴퓨터에 넣어두고 공개키를 리모트 서버에 넣어두면 된다

 

내 컴이 윈도우인 경우는 내 홈디렉토리에 .ssh 폴더를 만들어지고

원하면 다른 폴더를 사용해도 된다. 비공개키가 여러개면 이름을 다르게 한다

그러나 ssh키는 하나만 만들어서 여러서버에 올려두는 것이 더 편하다.

하나의 서버에 여려계정으로 연결할 때도 마찬가지로 하나의 ssh를 사용해라 그게 편하다

내 컴이 리눅스이면 리눅스 로그인 홈디렉토리 밑에 .ssh를 만들면 된다 (기본 ssh를 사용하면 폴더변경 불가)

 

======= 내 컴이 윈도우인 경우 예시 ============

1. ssh-keygen -t rsa -b 4096
2. scp %USERPROFILE%\.ssh\id_rsa.pub    smsmt@123.123.123.123:~/tmp.ssh
3. ssh "cat smsmt@123.123.123.123:~/tmp.ssh >> ~/.ssh/authorized_keys"
4. 로칼은 id_rsa 를 사용한다

==========================================

 

설명 1. ssh 키를 생성하는 명령어로 공개키(id_rsa.pub)와 비공개키(id_rsa)를 만든다( 내 홈폴더아래 .ssh 폴더에 만든다)

        (  키생성시 뭐 물어보는데 걍 엔터 2번 치면 된다)

설명 2. 공개키를 리모트 서버로 보낸다

설명 3. 리모트서버에서 업로드된 공개키를 공개키를 모아두는 파일(~/.ssh/authorized_keys)에 추가한다
          (폴더 및 파일명 예약된 고정임)

설명 4. 사용자 로그인 이름은 지정하고 암호 대신 ssh키를 사용한다고 하고 사용키에는 (%USERPROFILE%\.ssh\id_rsa)를 지정하면된다 

 

(난 teraterm을 사용 ... 참고 그림) 

추가사항).

2번 항목에서 로그인 유저를 smsmt로 했으므로

로그인창에서 암호는 적지말고 키파일을 지정하되 로그인할 유저가 smsmt라는것은 지정해야한다

%USERPROFILE% -> 이거 (혹시나해서) 자기 홈디렉토리를 절대경로로 지정하는것이 안전할 수도 있다