728x90
반응형


요약

- 다음과 같이 ssh 접속 시 메시지를 띄우면서 접속이 안될 때는 아래와 같이 해결해 봅시다.

 

- 다음 파일에 ssh 접속이 가능한 IP / 노드이름을 추가해 줍니다.

순서 명령어 / 동작 설명
1 $ sudo vi /etc/hosts.allow  vi로 hosts.allow 파일 실행
2 i --> 파일편집 --> Esc --> : --> wq 파일 맨 아래 sshd: 부분에 IP/호스트이름 추가
ex) sshd: 111.222.333.444, node1

 

- 상기 방법으로 해결이 안될 때에는, 다음 파일에서 ssh 접속이 차단된 IP / 노드이름을 제거해 줍니다.

순서 명령어 / 동작 설명
1 $ sudo vi /etc/hosts.deny vi로 hosts.allow 파일 실행
2 i --> 파일편집 --> Esc --> : --> wq 파일 맨 아래 sshd: 부분에 IP/호스트 이름이 있다면 제거
ex) sshd: 111.222.333.444, node1 (제거)

 

 


배경

- 보통 ssh 접속으로 마스터 노드에서 슬레이브 노드로 접속을 하거나 원격으로 다른 시스템에 접속할 때, 다음과 같은 메시지를 띄우면서 ssh 접속이 안될 때가 있습니다.

 

- 에러메시지들은 다음과 같습니다.

   > ssh_exchange_identification: read: Connection reset by peer
   > ssh_exchange_identification: read: Connection closed by remote host

 

- 해결 방법은 무엇일까요?

 

 


방법

- Linux 시스템에서는 원격접속이 가능한 호스트와 불가능한 호스트를 지정할 수 있는 설정파일이 존재합니다.

 

- 먼저 원격접속이 가능한 호스트를 설정할 수 있는 파일은 /etc/hosts.allow 입니다. 확인을 해볼까요?

 

- 파일 앞쪽에는 주석처리된 간단한 파일에 대한 설명이 있고, 맨 아래에 sshd: {IP/호스트 이름} 이 적혀있는데, 여기에 포함되어야 원격접속이 가능합니다.

 

- 따라서, 아래 예시처럼 원격접속이 필요한 IP나 호스트 이름을 적어줍니다. 형식은 둘 중 하나를 골라서 사용하시면 됩니다.

예시1 sshd: node1
sshd: node2
sshd: 111.222.333.444
예시2 sshd: node1, node2, 111.222.333.444

 

- /etc/hosts.deny 파일에는 원격접속을 제한하는 IP나 호스트 이름을 적을 수 있는데, 혹시 이 파일에 본인의 IP나 호스트 이름이 적혀 있다면 지워줍니다.

 

- 저 같은 경우는 /etc/hosts.allow 에 원격접속하고자 하는 아이피/호스트 이름이 적혀있지 않았었습니다. 그래서, 호스트 추가해줬고, /etc/hosts.deny 는 문제가 없었습니다.

문제가 있었던 파일 --> node1이 적혀있지 않았습니다.
문제 해결된 파일 --> node1을 추가해줬습니다.
deny 파일은 문제가 없었네요.

 


조금이나마 도움이 되었으면 좋겠습니다.

728x90
반응형

+ Recent posts