사이트 내 전체검색
[linux] ssh로 로그인하기
로빈아빠
https://cmd.kr/server/373 URL이 복사되었습니다.

본문

ssh로 로그인하기

보안을 위하여 보통 ssh를 많이 사용합니다. (openssh)
그런데 계정의 비밀번호가 아니라 비밀키와 공개키를 이용하여 인증을 사용할 수 있습니다. 때론 백업등을 이용하여 스크립트를 실행해서 다른 서버로 옮길 경우에는 보안을 위하여 ssh를 사용하면서도 비밀번호를 넣지 않고 자동으로 키를 이용하여 인증작업을 할 수 있습니다.(스크립트 이용시 필요)

** 암호화 형태는 dsa, rsa 방식이 있으며 어떤 방식으로 하느냐에 따라 나중에 서버쪽에서 세팅파일명이 약간 달라집니다.
(dsa:  authorized_keys/ rsa : authorized_keys2)

여기서 계정은 양쪽 다 taejun 이고 홈 디렉토리는 /home/taejun 이라고 가정합니다.

$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/taejun/.ssh/id_rsa): Enter passphrase (empty for no passphrase): xxxxxx Enter same passphrase again: xxxxxx Your identification has been saved in /home/taejun/.ssh/id_rsa. Your public key has been saved in /home/taejun/.ssh/id_rsa.pub. The key fingerprint is: 65:ac:e5:70:9a:b2:4f:25:c4:d3:02:00:e1:f8:f9:3b taejun@tunelinux.pe.kr


서버에 두개의 파일이 생성됩니다.

$ ll total 4 drwx------ 2 taejun taejun 512 4 20 19:51 ./ drwxr-xr-x 8 taejun taejun 1024 4 20 18:24 ../ -rw------- 1 taejun taejun 887 4 20 19:51 id_rsa -> 개인키 파일 (자기만이 읽고 쓸 수 있도록 되어있지요?) -rw-r--r-- 1 taejun taejun 232 4 20 19:51 id_rsa.pub -->> 공개키 파일

여기서 생성된 파일을 접속하고자 하는 서버로 복사를 합니다.

$ scp id_rsa.pub test.co.kr:~/.ssh/authorized_keys2 The authenticity of host 'test.co.kr (211.111.111.11)' can't be established. RSA key fingerprint is 95:d3:55:e9:0f:f5:53:e0:67:91:0b:cf:97:07:12:98. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'test.co.kr,211.111.111.11' (RSA) to the list of known hosts. taejun@test.co.kr's password: xxxxxx id_rsa.pub 100% |*****************************| 232 00:00

이렇게 하고 난 이후에는 키생성시 입력한 비밀번호를 사용하면 됩니다. 그런데 스크립트 실행시 비밀번호를 입력하지 않아도 자동으로 처리되도록 할 수가 있습니다.

$ ssh-agent bash $ ssh-add ~/.ssh/id_rsa


다른 클라이언트에서도 test.co.kr 로 접속을 하려고 하는 경우에는 위에서 설명을 한대로 비밀키와 개인키를 생성하고 새로 생성한 개인키를 서버(test.co.kr)의 autorized_keys2 에 추가해주면 됩니다.
$ cat id_rsa.pub >>~/.ssh/authorized_keys2

authorized_keys2 파일은 인증키를 보관하는 역할을 합니다.

클라이언트에서 서버로 접속하는 경우 서버에서는 authorized_keys2 파일을 통해 공개키가 있는지 확인을 하고 서로의 키를 확인한 다음 인증하는 방식이라고 생각을 하면 될 듯 합니다.


## 참고자료
http://kltp.kldp.org/stories.php?story=02/05/31/6337295
http://php.sarang.net/phpBB2/viewtopic.php?t=182
http://oops.org/?&t=lecture&sb=ssh2&n=3

댓글목록

등록된 댓글이 없습니다.

1,139 (11/23P)

Search

Copyright © Cmd 명령어 18.188.154.238