서버 간 통신시 password 입력 없이 통신을 하기 위해서는 ssh 공개키를 알고 있어야 한다.
이 방법에 대해서 알아보자.
- SSH KEY 생성
- authorized_keys 파일 생성
- .ssh 권한 설정
$ ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*
|
.ssh 디렉토리는 700, 내에 파일들은 600으로 설정되어야 한다.
그리고 접속하고자 하는 장비에 ~/.ssh/id_rsa.pub(공개키) 를 ~/.ssh/authorized_keys 파일에 추가해 준다.
ssh 설정이 잘 되었는지 확인하기 위해서 간단하게 아래와 같이 명령어를 수행해 보면 된다.
ssh {접속하고자 하는 장비 호스트명} date
|
ssh 로 장비에 접속하여 date 명령어를 수행하는 것이다.
정상적으로 설정이 되었다면 명령 프롬프트가 접속한 장비명으로 변경되고 date 명령어가 정상 수행되어야 한다.
ssh 설정을 잘 했음에도 불구하고 접속이 안 되는 경우가 있다.
이 때 몇가지 체크사항이 있는데. 차례대로 확인해보자.
- 접근권한
일단 .ssh 디렉토리 접근권한을 체크해야 한다.
drwx------ 2 irteam irteam 4096 2016-01-06 21:10 .ssh
.ssh 는 700, 그 내부파일은 모두 600 으로 세팅이 되어 있는지 확인한다.
- 공개키
From ~ To 일 때 From 서버의 공개키가 To 서버에 잘 등록이 되어 있어야 한다.
From 서버의 ~/.ssh/id_rsa.pub 내용이 To 서버의 ~/.ssh/authorized_keys 내에 잘 등록되어 있는지 비교하자.
(key 가 알아보기 어려울 수 있으니, Text 비교 툴을 이용하면 쉽게 비교할 수 있다. AcroDiff 같은??)
- 오류 로그
확인 법접속할 서버의 /var/log/secure 파일을 확인해 보면 접속시 어떤 로그가 나타나는지 확인할 수 있다.
보통 info 로그만 나오는데, debug 로그도 확인하려면 sshd 를 띄울 때 debug 옵션을 추가해 주어야 한다.
(http://ubuntuforums.org/showthread.php?t=1683304)- CaseStudy
sshd[22093]: Authentication refused: bad ownership or modes for directory /home1/irteam
위와 같은 오류가 발생하고 있었다.
구글링을 해보니 irteam 에 대한 디렉토리 권한이 문제가 있었다.
http://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
chmod 755 irteam << 를 수행해 주니, 정상적으로 접속이 된다.
- CaseStudy
참고자료
- http://haruair.com/blog/2220
- http://ubuntuforums.org/showthread.php?t=1683304
- http://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
'Infra > Linux' 카테고리의 다른 글
wget으로 파일 받을 때 파일 수정시간은? (3) | 2024.09.25 |
---|---|
bash shell 로 날짜별 script 수행해보기 (0) | 2018.01.23 |
Linux 파일 구조 (0) | 2015.12.31 |
find exec 사용시 주의사항 (0) | 2015.03.31 |
Find 명령어 (0) | 2015.03.16 |