"포트 22 : 연결 거부"오류가 발생하는 이유는 무엇입니까?


70

나는 받고있다

port 22: Connection refused 

서버에 연결하는 동안 오류가 발생했습니다.

openssh 클라이언트와 서버가 모두 설치되어 있으며 실행 중입니다. 그러나 여전히 오류가 있습니다. 도와주세요.


2
명확히하기 위해 openssh 서버가 서버에 설치되어 있습니까?
케빈

ssh가 포트 22에서 실행 중인지 그리고 포트를 차단하는 방화벽 규칙이 있는지 확인하십시오.
Manula Waidyanatha

1
나에 따르면, 현재 방화벽에 의해 차단 된 ssh (포트 22)를 허용하도록 방화벽을 구성하십시오.
Ketan Patel


일시적인 네트워크 손실로 인해 발생할 수도 있습니다. 인터넷 연결을 확인하십시오.
user648610

답변:


78

나는이 문제를 겪고 마침내 적절한 대답을 얻었습니다.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

그런 다음 raspi-config터미널 창 으로 들어가서 ssh를 활성화했습니다.

이렇게하면 포트 22를 sshd에 사용할 수 있습니다.


@SDsolar
Nadav B

@ Nadiv, ssh를 활성화하려면 raspi-config를 사용해야했습니다. 이를 반영하여 답변이 수정되었습니다.
SDsolar

두 컴퓨터에서 처음 세 줄을 수행하면 파일이 성공적으로 전송됩니다. Ubuntu에 기본적으로 설치 / 활성화되어 있지 않은 이유는 무엇입니까? connection refused는 방화벽 문제, 사용자 이름 문제, IP 주소 문제 등 등 매우 실망했다 경우 오류가 난 아무 생각이 너무 비밀이 있었다하지 않습니다.
증오

sudo ufw allow 22한 번 일했다. 다시 오류가 나타나기 시작했습니다.
vineeshvs

32

서버에서 sshd가 실제로 실행 중이고 포트 22에서 청취 중인지 확인하십시오.

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

결과를 얻지 못하거나 tcp 0.0.0.0:22에서 듣고 있다는 것을 표시하지 않으면 해결하십시오.

sshd가 실행 중이고 tcp 포트 22에서 수신 대기 중임을 표시하면 방화벽 규칙이 방해가되지 않는지 확인하십시오. 다시 서버에서 :

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

또는 교대로

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

위의 규칙 중 하나와 같은 규칙이 표시되면이를 수정해야합니다.

방화벽 규칙이 보이지 않고 서버에서 서비스가 실행되고있는 경우 워크 스테이션과 연결된 네트워크를 확인할 차례입니다. 다른 서버에 연결할 수 있습니까? 자신 만의 인터페이스 나 루프백 주소를 핑할 수 있습니까? 기타.


1
다른 서버에 연결할 수 있다면?
opensourcechris

2
답장을 보내 주셔서 감사합니다. 제 2222 번 포트는 2222가 아닙니다.
Yogesh Darji

내 결과는 없었다.
SDsolar 2016 년

그것을 고치십시오 : sudo ufw allow 22(또는 당신의 항구가 무엇이든)
John D

netstat는 더 이상 사용되지 않습니다 (그리고 새로운 버전의 Ubuntu에는 기본적으로 설치 되지 않습니다 - 'netstat'명령을 찾을 수 없지만 ...로 설치할 수 있습니다 ). 아마도 iproute2에 대한 업데이트 입니까?
Peter Mortensen

14

이 시도

sudo apt-get remove openssh-client openssh-server

그리고

sudo apt-get install openssh-client openssh-server

그것은 나를 위해 일했다 :)

아마도 가장 정통적인 해결책 은 아닐 것입니다 ... :)


3
제거 / 재설치 솔루션 대신 dpkg-reconfigure를 사용하는 것이 더 쉬울 것입니다.
Stephen Michael Kellat

1
작동시키기 위해서는 apt-get purge openssh-server (제거 대신)를 사용해야했습니다.
11101101b

6

Raspbian을 설치 한 후 동일한 문제가 발생했습니다. 나를 위해 일한 솔루션 :

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

이것이 효과가 있었다면 전에 sshd-config를 변경해야합니다.
guntbert

ssh를 설정하는 동안 Raspbian에서 sshd_config를 편집했습니다. 이 솔루션은 저에게 효과적이었습니다.
Scott

+1. 효과가있는 유일한 솔루션!
Nadav B

1

다음 명령이 저에게 효과적이었습니다.

cd /root/.ssh
vi known_hosts

이제 해당 파일에서 모든 것을 삭제하고 터미널에 입력하십시오.

service sshd restart

출처 : SSH-연결 거부


나에게 비슷한 문제이지만, 내가 알고 ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST있는 리눅스 사용자와 원격 호스트를 대체하여 known_hosts를 지 웠습니다.
Chris

1

이것은 당신을 위해 그것을 고칠 수도 있습니다. 나가는 IP 주소에서 같은 포트의 로컬 IP로 포트 전달 연결 22를 시도하십시오. 원격 우분투 컴퓨터에 ssh in 할 수있게되었습니다.


0

제 경우에는 고정 IP가 잘못되었습니다. ping <my_ip>서버 전환 후 수행 하여 알 수 있습니다. 서버가 꺼져도 여전히 핑 (ping) 중입니다. IP를 변경하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.