2020. 6. 10. 15:55ㆍOS/Linux
[sshd 오류메시지 발생시]
systemd: Unitsshd.service entered failed state
or
systemd: Failed to start OpenSSH server daemon
or
/var/log/secure 로그에서
Aug 22 05:03:58 test01 sshd[31008]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Aug 22 05:03:58 test01 sshd[31008]: fatal: Cannot bind any address.
위와 같은 오류메시지가 뜰 경우 sshd 데몬이 정상 동작을 하지 못하고 있는 상황이고, var로그에서의 내용으로는
ipv6가 활성화 되어 있음에 따라 지속적으로 오류가 발생하고 있는 상황이다.
또한 잘못하면 sshd가 행이 걸려 restart 또는 stop/start 명령어가 먹히지 않을수도 있는 상황이다.
※ 무조건 ipv6의 문제는 아님 위 사례는 sshd가 행이 걸려 발생한 문제라고 보여짐
해결방법 : (IPv6가 문제일시 조치 방법)
먼저 /etc/ssh/sshd_config 파일에서
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::
Protocol 2
Port 22
ListenAddress 0.0.0.0
Protocol 2
위 3가지만을 주석을 풀고 저장한다.
(위 3가지 옵션이 IPV4로 진행을 하고, Port 22번에 Protocol 2버전으로 진행을 하겠다는 옵션이다.)
해결방법2 : (sshd가 행이 걸렸을 경우 조치 방법)
- 현재 리눅스에서 떠있는 프로세스 ID를 확인한다.
# ps -ef | grep sshd
root 5391 1 0 Aug22 ? 00:00:01 /usr/sbin/sshd
root 18063 5391 0 08:40 ? 00:00:00 sshd: root@pts/0
root 18157 18080 0 08:41 pts/0 00:00:00 grep --color=auto sshd
- 위 5391이 프로세스 ID이며, 해당 프로세스를 kill해준다.
kill -9 [프로세스 ID]
# kill -9 5391
- sshd가 떠있는지 재 확인한다.
#systemctl status sshd
(상태 창이 회색불로 들어와야 된다.)
############################################
[공통 진행]
1. sshd 데몬을 재시작한다.
# systemctl restart sshd.service
[재시작이 되지않는 경우]
2. 콘솔에서 프로세스를 확인한다.
# ps -ef | grep sshd
3. sshd 프로세스를 kill 한다.
kill -9 [프로세스ID]
# kill -9 5391
4. sshd 데몬을 구동시킨다.
# systemctl start sshd.service
5. 정상 구동되었는지 확인한다.
# systemctl status sshd.service
>>active 상태에 초록불 확인
# netstat -an | grep 22
>> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
위 부분만 존재하는 것을 확인 할것(tcp6이 떠잇으면 명령이 정상적으로 적용된것이 아니다.)
※ 재시작이 정상적으로 되지 않는 다면 떠있는 프로세스를 kill 하고 다시 구동해준다.
(다만 무조건 kill 보다는 restart로 진행을 권고한다.
이유로는 터미널로 해당 절차 진행시 연결 수립할 다른 방안이 없다면 조치 불가능하기 때문이다.)
'OS > Linux' 카테고리의 다른 글
[장애대처]Hardware 오류 (0) | 2020.06.11 |
---|---|
[Command]tcp warpper (0) | 2020.06.11 |
[Command]sosreport (0) | 2020.06.10 |
[장애대처]gnome-session (0) | 2020.06.10 |
[Command]yum (0) | 2020.06.10 |