공개 키 인증을 사용하여 터미널에서 내 VPS에 새로 설치된 Centos8에 로그인할 수 없습니다.
로그인하면 정상적으로 인증되는 것처럼 보이지만 시간이 초과되어 "[원격 호스트 IP 주소]에 의해 연결 재설정"(피어가 아님)이 반환됩니다.
모든 로그를 확인했습니다. 그러나 실제로는 아무것도 오지 않습니다.
내가 확인한 사항:
- /var/log/메시지
- /var/log/audit/audit.log
- /var/로그/보안
- ~/.ssh 및 ~/.ssh/id_rsa* 파일에 대한 권한
- /etc/ssh/sshd_config
LAN의 다른 컴퓨터에서 로그인을 시도했지만 성공하지 못했습니다.
- 우분투18.04
- CentOS 7 머신
- 월드 SL
아무런 문제 없이 동일한 VPS에서 깨끗한 CentOS7 설치에 로그인했다는 점은 주목할 가치가 있습니다.
OpenSSH 8에 제가 모르는 변경 사항이 있나요?
CentOS7 및 CentOS8 시스템에 로그인하기 위한 자세한 출력을 첨부했습니다.
- CentOS 7 SSH 확인:https://pastebin.com/uGc1T8tk
- CentOS 8 SSH가 실패합니다.https://pastebin.com/XadQQEBK
보시다시피 인증은 두 가지 측면 모두에서 성공합니다.
debug1: Authentication succeeded (publickey)
CentOS 8에서 볼 수 있는 주요 차이점은 이제 OpenSSH 7 대신 OpenSSH 8을 사용한다는 것입니다.
OpenSSH 8에 제가 모르는 변경 사항이 있나요?
미리 감사드립니다.
편집 1
@thehostingadmin 웹 GUI에서 복사하여 붙여넣는 방법을 모르지만 다음은 제공한 명령의 출력입니다.https://i.stack.imgur.com/9lJec.jpg
편집 2
# sysctl -w net.ipv4.tcp_tw_recycle=0
sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory
# sysctl -w net.ipv4.tcp_tw_reuse=0
net.ipv4.tcp_tw_reuse = 0
결과: 여전히 주사위가 없습니다
편집 3
성공/실패 매트릭스
| OS | SSH Client | Network | Auth | Success |
|--------------------|---------------|--------------|------|------------|
| Ubuntu 18.04 (WSL) | OpenSSH_7.6p1 | LAN (NAT x2) | OK | E01 | TO/H |
| Debian 10 (RPi) | OpenSSH_7.9p1 | LAN (NAT x2) | OK | TO/H |
| Ubuntu 18.04 | OpenSSH_7.6p1 | LAN (NAT x1) | OK | E02 |
| CentOS 7.8 | OpenSSH_7.4p1 | LAN (NAT x1) | OK | TO/H |
| CentOS 7.8 | OpenSSH_7.4p1 | VPS | OK | OK |
E01
:[원격 호스트 IP 주소] 포트 22를 통해 연결 재설정E02
: packet_write_wait : [원격 호스트 IP 주소] 포트 22에 연결 중 : 끊어진 파이프TO/H
: 시간 초과/중단
편집 4 다음과 같이 변경되었습니다.
# /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 20
ClientAliveCountMax 5
측정 가능한 차이는 없습니다.
편집 5
SSH 클라이언트에서 오류가 발생하면 E01
서버에서 다음을 볼 수 있습니다.
# journalctl -u systemd-logind -fn0
Aug 27 14:51:18 host systemd-logind[701]: New session 136 of user root.
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1
Aug 27 14:51:38 host systemd-logind[701]: Session 136 logged out. Waiting for processes to exit.
Aug 27 14:51:38 host systemd-logind[701]: Removed session 136.
성공적인 로그인은 다음과 같습니다.
Aug 27 15:04:42 host systemd-logind[701]: New session 143 of user root.
편집 6
뒤돌아 LogLevel
보니 DEBUG3
다음과 같은 것이 있었다/var/log/secure
# Login Fail
Aug 27 15:59:07 host sshd[9387]: debug3: monitor_read: checking request 124
Aug 27 15:59:26 host sshd[9389]: Read error from remote host <wan ip> port 2611: Connection reset by peer
Aug 27 15:59:26 host sshd[9389]: debug1: do_cleanup
# Login Success
Aug 27 15:57:48 host sshd[9360]: debug3: monitor_read: checking request 124
편집 7
@fra-san에게 사과드립니다. 더 자세한 로깅( -vvv
)을 추가하면 더 많은 세부정보가 제공됩니다.
# SSH fail
debug2: channel 0: request shell confirm 1
debug3: send packet: type 98
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: send packet: type 1
Connection reset by <remote host ip> port 22
# SSH Success
debug2: channel 0: request shell confirm 1
debug3: send packet: type 98
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Activate the web console with: systemctl enable --now cockpit.socket
편집 8
내 홈 라우터(사용자 정의 펌웨어)를 내 ISP에서 제공한 라우터로 교체했습니다. 아직도 기쁨이 없습니다.
편집 9
Wireshark 패킷 추적에 참여해 보세요.
참고: 호스팅 공급자에게 문제를 제기한 후(해당 업체에서는 작동함) 서버의 OpenSSH 서버가 OpenSSH 7.8로 전환되었지만 문제는 여전히 지속됩니다.
편집 10
라인상어. 클라이언트와 서버:https://i.stack.imgur.com/XRZRW.jpg
노트
- 클라이언트가 서버로부터 프레임 29를 수신하지 못했습니다.
- 호스팅 제공업체가
openssh
v8로 다시 변경되었습니다.
답변1
DEBUG 로깅을 활성화한 다음 Journalctl을 사용하여 VPS에서 sshd를 추적하지 않으면 알 수 있는 방법이 없습니다.
이렇게 하려면 VPS 공급자에게 콘솔을 통해 서버에 액세스하는 방법을 문의해야 합니다. 공급자마다 방법이 다릅니다.
/etc/ssh/sshd_config
VPS의 어느 위치에나 다음 구성을 추가하세요.
LogLevel DEBUG
VPS에서 sshd를 다시 시작합니다.
sudo systemctl restart sshd
VPS에서 sshd 로그를 추적합니다.
journalctl -u sshd -fn0
이제 로컬 컴퓨터에서 ssh를 시도하면 sshd에서 말하는 오류를 확인할 수 있습니다.
편집하다:댓글 결과에 따라 업데이트됨:
NATd 호스트에서 연결하는 데 어려움이 있다는 점을 고려하여 Cent 8 VPS에서 다음 커널 구성이 활성화되어 있는지 확인하고 활성화되어 있으면 비활성화하십시오.
sysctl -w net.ipv4.tcp_tw_recycle=0
sysctl -w net.ipv4.tcp_tw_reuse=0
이것이 작동하면 /etc/sysctl.conf
재부팅을 사용하여 변경 사항을 유지하십시오.
답변2
좋은 소식이 있어요.
ISP에 문제를 제기했습니다. 그들은 나에게 새로운 IP를 주었다. 그 밖에 무엇을 했는지는 모르겠지만 문제가 해결되었습니다.
나는 아직도 그 일을 하고 싶다 openssh
.
그들은 특히 VMWare 커뮤니티 내에서 이것이 알려진 문제라고 말합니다.
https://communities.vmware.com/thread/590825
이 문제는 OpenSSH_7.8의 이 플래그와 관련된 변경 사항과 관련이 있습니다 QoS
.
http://www.openssh.com/txt/release-7.8
이것해결책~/.ssh/config
파일에서 다음을 사용하는 것입니다
Host *
IPQoS=throughput
이것이 나에게 맞는지 확인하기 전까지는 이것을 답변으로 표시하지 않겠습니다.