차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:ssh_자동_로그인 [2015/02/22 19:36] – [확인] V_Ltech:ssh_자동_로그인 [2019/08/21 05:25] (현재) 219.240.210.166
줄 1: 줄 1:
 +{{tag>ssh 자동 로그인}}
 ====== SSH 자동 로그인 ====== ====== SSH 자동 로그인 ======
  
-"서버"에 접속하는 "클라이언트"는 로그인 과정을 거칩니다. 사용자명과 암호를 입력함으로서 그 사용자라는 신뢰를 할 수 있다는 거지요비슷한 원리로 공개키 암호화 알고리즘을 이용하여 이 과정을 자동화할 수 있다.+[[ssh|SSH]]로 
 +"서버"에 접속하는 "클라이언트"는   사용자명과 암호를 입력함으로서 그 사용자를 신뢰를 할 수 있다는 증명을 해야 한다 
 + 이 과정을 공개키 암호화 알고리즘을 이용하여 자동화할 수 있다.
 공개키 암호화는 암호화하는 키와 복호화하는 키가 서로 다를 수 있는 암호화 방식이다. 공개키 암호화는 암호화하는 키와 복호화하는 키가 서로 다를 수 있는 암호화 방식이다.
  
줄 10: 줄 13:
 다음과 같이 하면 된다 . 다음과 같이 하면 된다 .
  
-==== 클라이언트==== +===== 클라이언트===== 
-클라이언트의 터미널 창에서 하는 작업이다. (osx의 경우+클라이언트의 터미널 창에서 하는 작업이다. (osx의 경우 local 터미널) 
 +([[SSH]]만 설치되어 있으면 자동 로그인을 구현할 수 있는 Ubuntu와는 달리, Windows 환경에서는 [[Putty]]나 Tera Term 등 콘솔 접속 프로그램의 도움을 받아야 RSA 키를 생성할 수 있다.) 
 + 
 +====macOS====
  
 1. 로컬 계정으로 접속 한다. 예) openwiki 1. 로컬 계정으로 접속 한다. 예) openwiki
  
-2. 홈디렉토리에서 ssh-keygen 명령으로 passphrase 에 암호를 입력하여 키를 생성한다.+2. 홈디렉토리에서 ssh-keygen 명령으로 (passphrase 에 암호를 입력하여키를 생성한다.
  
 <file> <file>
-ssh-keygen -t rsa<엔터>+ssh-keygen -t rsa<엔터>
 Generating public/private rsa key pair. Generating public/private rsa key pair.
-Enter file in which to save the key (/home/user1/.ssh/id_rsa):<엔터>+Enter file in which to save the key (/home/openwiki/.ssh/id_rsa):<엔터>
 Enter passphrase (empty for no passphrase): <암호입력> Enter passphrase (empty for no passphrase): <암호입력>
 Enter same passphrase again: <암호입력> Enter same passphrase again: <암호입력>
-Your identification has been saved in /home/user1/.ssh/id_rsa. +Your identification has been saved in /home/openwiki/.ssh/id_rsa. 
-Your public key has been saved in /home/user1/.ssh/id_rsa.pub.+Your public key has been saved in /home/openwiki/.ssh/id_rsa.pub.
 The key fingerprint is: The key fingerprint is:
-XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX user1@localhost.localdomain+XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX openwiki@localhost.localdomain
 </file> </file>
  
줄 35: 줄 41:
 합계 12 합계 12
 <file> <file>
--rw------- user1 user 951  7월 25 15:03 id_rsa +-rw------- openwiki user 951  7월 25 15:03 id_rsa 
--rw-r--r-- user1 user 238  7월 25 15:03 id_rsa.pub +-rw-r--r-- openwiki user 238  7월 25 15:03 id_rsa.pub 
--rw-r--r-- user1 user 669  7월 10 11:17 known_hosts+-rw-r--r-- openwiki user 669  7월 10 11:17 known_hosts
 </file> </file>
  
 +비밀키는 자신의 계정폴더의 .ssh에 그대로 두면 된다.
 +
 +====윈도우====
 +
 +''puttygen.exe''와 같은 프로그램을 사용해서 키를 만들 수 있다. 
 +[[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|홈페이지]]에서 다운받을 수 있으며,
 +[[winscp|WINSCP]]를 설치했다면 같이 설치되므로  ''C:\Program Files (x86)\WinSCP''에서 확인해본다.
 +
 +{{:tech:puttygen.jpg|}}
 +
 +''generate''를 누르고 마우스를 좀 움직여주면 생성된다.
 +
 +공개키 id_rsa.pub 와 비밀키 id_rsa 를 저장한다.
 +
 +비밀키를 적당한 폴더에 저장하고, putty의 설정에서 connection->ssh->auth 에서 경로를 지정하면 된다. 
 +
 + 
 +
 +=====서버측 작업=====
 이제 이 공개키 파일인 ''id_rsa.pub''를 서버의 사용하고자 하는 계정의 홈페이지 아래 ''.ssh/authorized_keys'' 라는 파일로 옮겨 놓으면 된다. 파일을 옮기는 방법은 여러가지가 있겠지만 편한 방법을 쓰면 된다. 이제 이 공개키 파일인 ''id_rsa.pub''를 서버의 사용하고자 하는 계정의 홈페이지 아래 ''.ssh/authorized_keys'' 라는 파일로 옮겨 놓으면 된다. 파일을 옮기는 방법은 여러가지가 있겠지만 편한 방법을 쓰면 된다.
  
-====서버측 작업==== 
  
 1. 서버에 openwiki 아이디로 로그인 한다. (openwiki 뿐 아니라 다른 계정에서도 같은 작업을 하면, 그 계정으로 접근 됨.) 1. 서버에 openwiki 아이디로 로그인 한다. (openwiki 뿐 아니라 다른 계정에서도 같은 작업을 하면, 그 계정으로 접근 됨.)
  
-2. ''/home/user1/.ssh/''폴더로 접근하여 ''id_rsa.pub'' 파일을 업로드 한 후, 파일 ''authorized_keys''에 덧붙인다.  권한을 600으로 변경하거나 확인한다.+2. ''/home/openwiki/.ssh/''폴더로 접근하여 ''id_rsa.pub'' 파일을 업로드 한 후, 파일 ''authorized_keys''에 덧붙인다.  권한을 600으로 변경하거나 확인한다.
  
   cat id_rsa.pub >> authorized_keys<엔터>   cat id_rsa.pub >> authorized_keys<엔터>
   chmod 600 authorized_keys<엔터>   chmod 600 authorized_keys<엔터>
  
-혹은  +''.ssh'' 폴더는 접근이 가능해야 하므로 권한 700 이 적당하다.
  
 ====확인==== ====확인====
  
-1. B 클라이언트에 user1으로 접속하여 확인 한다. + 클라이언트에서 서버로 openwiki계정을 사용해서 접속하여 확인 한다. 
-  ssh user1@xxx.xxx.xxx.xxx +  ssh openwiki@xxx.xxx.xxx.xxx 
-  Enter passphrase for key '/home/user1/.ssh/id_rsa': <암호 입력후 엔터+  Enter passphrase for key '/home/openwiki/.ssh/id_rsa': <암호 입력후 엔터 
 +    (키 생성시 암호 입력을 안했다면 묻지 않고 바로 접속됨.)>
  
 +비밀키가 유출되면 서버가 바로 뚫리므로 주의한다.
 +=====잘 안될 때=====
  
-(키 생성시 암호 입력을 안했다면 묻지 않고 바로 접속됨.)>+서버에 공개를 넣었는데도 SSH 로그인 할 때 마다 비밀번를 물어본다면, 다음을 확인한다
  
-====참고==== 
  
 +====권한====
 +우선 .ssh 디렉토리와 authorized_keys 파일의 권한을 확인한다. .ssh는 0700, authorized_keys는 0600으로 설정되어 있어야 한다.  
 +
 +
 +
 +  chmod 0700 ~/.ssh
 +  chmod 0600 ~/.ssh/authorized_keys
 +
 +
 +====설정====
 +
 +서버에서 공개키 기반 인증이 허용되어 있어야 한다.  ''/etc/ssh/sshd_config''에 설정파일이 있는데 아래의 내용이 활성화되어 있는지 확인한다. 
 +
 +  RSAAuthentication yes
 +  PubkeyAuthentication yes
 +  AuthorizedKeysFile     %h/.ssh/authorized_keys
 +주석을 풀고 sshd를 재기동한다.
 +
 +  sudo service sshd restart
 +
 +=====참고=====
 +
 +  * [[ssh]]
 +  * [[putty]]
   * https://kldp.org/node/84757   * https://kldp.org/node/84757
 +  * http://mybookworld.wikidot.com/ssh-automatic-logon-multiple-users
 +
  
-{{tag>ssh 자동 로그인}}