본문 바로가기

Computer Engineering/Linux

ssh 자동접속 권한 생성 방법(공개키 public key 방식 - rsa)


A 에서 SERVER 에 password 입력없 접속한다고 가장하자 .


1. A 의 계정에 .ssh 폴더에서  ssh-keygen -t rsa 명령으로 id_rsa.pub을 생성한다.

2. scp 를 이용하여 SERVER  의 접속할 계정의 .ssh 에  만들어 두었던 id_rsa.pub 복사한다.

3. authorized_keys 라는 파일이 없으면 생성하고, 있으면 내요에 복사해온 id_Rsa.pub 내용을

긁어다가 붙여 넣는다.


4. A 에서 SERVER로 password 없이 접속한다.






사용자의 이름은 user 라 하고 접속하고자 하는 서버의 사용자명은 test라고 한다.

다시 말해 user@user 라는 사용자가 test@123.456.789.000 에 접속하려고 할때 

ssh 키를 생성해서 비번을 사용 안하고 접속 하는 방법을 말하는 것이다.



(용어의 정의)

user 의 홈 (예) /home/user 

test 의 홈 (예) /home/test 

> => 뒤에 오는 명령어를 실행 



1. 로컬 ssh RSA 키의 생성

1) user의 홈에서 >cd .ssh/ 를 한다.

id_rsa 파일이 있음을 확인하다 (내용이 궁금하면 >cat id_rsa )

2) ssh-keygen -t rsa 명령으로 id_rsa.pub을 생성한다.

(id_rsa값을 기준으로 public key 값을 생성하여 저장한 것이 id_rsa.pub 이다.)

3) vim id_rsa.pub 을 실행해서 안에 있는 내용을 전부 복사한다.



2. 원격서버에 RSA 키 값 설정

1) ssh test@123.456.789.000 을 실행하여 test 계정에 접속한다.

2) test의 홈에서 >cd .ssh/ 실행

3) vim authorized_keys 를 실행(파일이 있으면 아래에 내용을 덧붙이고 없다면 파일을 생성한다)

4) 1.3)에서 복사한 내용을 붙여 넣는다. :wq 로 저장

3. 자동접속 여부 확인

1) >exit 해서 원래 user 계정으로 돌아와서

2) >ssh test@123.456.789.000 을 실행해본다.

3) passwd 입력없이 로그인되는 모습을 확인할 수 있다.

 



출처 : http://cafe.daum.net/ITITITITIT/HIF0/103?docid=1IlMD|HIF0|103|20091113101452&q=user%20ssh%20key&srchid=CCB1IlMD|HIF0|103|20091113101452



-----------------------------------------------------------------------------------------------------------
 




 

RSA, DSA Key 교환으로 로그인 하기

perl 의 expect모듈을 이용해서 자동로그인 하는 프로그램을 만들 수도 있지만, 좀 많이 귀찮습니다. 게다가 보안에도 문제가 좀 있는 찜찜한 방법입니다. 다수의 서버를 관리하기에는 좋은 방법이 아닙니다. 

ssh의 dsa/rsa 키를 이용하면 아이디/패스워드 입력 없이 안전한 로그인 환경을 만들 수 있습니다. 이 방법은 분산처리 시스템이나 클라우드 환경에서 유용하게 사용할 수 있습니다.

상황

아래는 dsa/rsa 키교환을 테스트하기 위한 네트워크 환경입니다. 클라이언트는 연결을 요청하는 시스템이고, 서버는 연결할 시스템입니다. 클라이언트 서버의 호스트명은 my_client_1이고 서버는 my_server_1my_server_2my_server_3입니다.

dsa / rsa 키 생성

my_client_1 에서 ssh-keygen 을 이용해서 dsa 키를 생성합니다.
# ssh-keygen -t dsa 
 
이제 .ssh 디렉토리에 보면 id_dsa와 id_dsa.pub가 생긴것을 확인할 수 있다. id_dsa.pub 가 공개키인데, 각 서버에 복사하면 됩니다.

rsa key를 만들고 싶다면 dsa 대신 rsa를 쓰면 된다.

dsa / rsa 키 복사

이제 각 공개키를 접속을 원하는 서버에 복사를 해야 합니다. 복사할 대상 서버는 my_server_1, my_server_2, my_server_3 이고요. 접속에 사용할 계정은 yundream 으로 합니다. 

물론 각 서버에 ssh 데몬은 떠있어야 하겠죠. my_server_1 의 /home/yundream 에 .ssh 디렉토리를 만들고 id_dsa.pub 파일 내용을 .ssh 디렉토리에 있는 authorized_keys파일에 추가하면 됩니다. 만약 authorized_keys 파일이 없다면 새로 만들면 되고요. 참고로 .ssh 와 authorized_keys 는 소유자 yundream 으로 0600의 권한을 가지고 있어야 합니다. ssh 서버 버전에 따라서 소유권한을 엄격히 검사하거든요. 

이걸로 끝. 이제 로그인 과정 필요없이 접속할 수 있습니다.
# ssh yundream@my_server_1 
 

로그인 과정을 거치지 않고 원격으로 명령들을 실행할 수도 있습니다.
# ssh yundream@my_server_1 ls -al 
 

키를 여러개 만들어서 배포할 경우가 있는데요. -i 옵션으로 사용할 키를 명시할 수 있습니다.
# ssh yundream@my_server_1 -i .ssh/joinc_auth_key 
# ssh yundream@my_server_2 -i .ssh/admin_auth_key 

출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/auto_login