요약
- 다음과 같이 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) |
배경
- 보통 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 는 문제가 없었습니다.
조금이나마 도움이 되었으면 좋겠습니다.
'Linux' 카테고리의 다른 글
[ Linux - MPI ] MPI 병렬 계산 멈춤 문제 해결하기 (feat. 아무런 에러 메시지 없이 진행이 안될 때) (2) | 2023.10.22 |
---|---|
[ Linux - MPI ] 쉽게 설명하는 MPI 통신 핵심 개념 (feat. MPI 통신 멈춤 문제 해결 방법) (0) | 2023.10.22 |
[Linux - How to] 리눅스 커맨드 명령어, 프로그램의 디폴트 버전 (기본 경로)를 변경하고 싶을 때 (0) | 2022.03.14 |
[Linux - How to] 리눅스 시스템 종료 / 재부팅 명령어 (0) | 2022.03.13 |
[Linux - Tip] 리눅스 압축 명령어 tar 속도 향상 (0) | 2022.03.01 |