다른 컴퓨터로 ssh 할 수는 없지만 ping 할 수 있습니까?


20

다른 컴퓨터로 ssh 할 수 없지만 핑할 수 있습니까? 내가 무엇을 놓치고 있는지 확실하지 않습니까?
넷기어 라우터 사용

bash-3.2$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        inet 127.0.0.1 netmask 0xff000000 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        media: autoselect (none)
        status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        inet6 xxxx::xxxx:xxxx:xxxx:xxxxxx prefixlen 64 scopeid 0x5 
        inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
        media: autoselect
        status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
        lladdr xx:xx:xx:xx:xx:xx:xx:xx 
        media: autoselect <full-duplex>
        status: inactive
bash-3.2$ ssh jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 22: Connection refused
bash-3.2$ ssh -p 5900 jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 5900: Connection refused
bash-3.2$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3): 56 data bytes
64 bytes from 10.0.0.3: icmp_seq=0 ttl=64 time=0.046 ms
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.078 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 10.0.0.3: icmp_seq=4 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=5 ttl=64 time=0.081 ms
64 bytes from 10.0.0.3: icmp_seq=6 ttl=64 time=0.078 ms
^C
--- 10.0.0.3 ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.046/0.074/0.081/0.011 ms
bash-3.2$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4): 56 data bytes
64 bytes from 10.0.0.4: icmp_seq=0 ttl=64 time=2.667 ms
64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=2.675 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=2.969 ms
64 bytes from 10.0.0.4: icmp_seq=3 ttl=64 time=2.663 ms
64 bytes from 10.0.0.4: icmp_seq=4 ttl=64 time=2.723 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.663/2.739/2.969/0.117 ms
bash-3.2$ 

답변:


17

서버가 sshd를 실행하지 않거나 (따라서 포트 22에서 수신 대기하지 않음) 방화벽 차단 포트 22 (기본 ssh 포트)를 갖거나 다른 포트에서 ssh를 실행하는 매우 드문 경우 (거의 확실하지는 않습니다) .

먼저 sshd가 설치되어 있는지 확인하십시오 (데비안 예제 사용)

sudo apt-get install openssh-server

그리고 그렇다면, 실행 중입니까?

ps -ef | grep sshd

그런 다음 포트 22를 수신하는지 확인하십시오.

sudo netstat -nlp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      946/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      946/sshd

그런 다음 방화벽 규칙을 확인하십시오 (이는 상당히 다르므로 debian / ubuntu / etc 예제를 보여 드리겠습니다).

sudo ufw status

sudo ufw show listening
tcp:
  22 * (sshd)
  24224 * (ruby)
tcp6:
  22 * (sshd)
  8080 * (java)
udp:
  123 10.X.Y.Z (ntpd)
  123 * (ntpd)
  18649 * (dhclient)
  24224 * (ruby)
  34131 * (ruby)
  60001 10.87.43.24 (mosh-server)
  68 * (dhclient)
udp6:
  123 fe80::1031:AAAA:BBBB:CCCC (ntpd)
  123 * (ntpd)
  48573 * (dhclient)

ufw닫힌 것으로 표시 되면 실행하십시오 (데비안 / 우분투 예)

sudo ufw allow 22

1
FWIW, 외부 포트 머신이 다른 포트에서 SSH를 실행하여 공격 영역을 완화시키는 것이 일반적입니다.
sg

3

별난 어두운 장면이지만 IP가 변경되지 않았는지 확인하십시오. 이 문제가 한 번 발생 했습니다. 일반적인 로그인 방법으로 .bashrc별칭 alias sshdev='ssh me@123.2.3.4'을 설정 했으며 어느 날 다음과 같은 오류가 발생했습니다.

ME-M-216C:~ me$ sshdev 
ssh: connect to host 123.2.3.4 port 22: Connection refused

우리는 방금 IP를 재설정하는 정전이 발생했기 때문에 IP를 성공적으로 핑 (ping)했지만 올바른 시스템이 아닙니다. 사용 nslookup <IP>하려는 올바른 컴퓨터 이름인지 확인하는 데 사용할 수 있습니다 ssh.


1

"연결이 거부되었습니다"라는 메시지가 표시되면 데몬이 해당 포트에서 수신 대기하지 않거나 방화벽이 연결을 거부하고 있음을 의미합니다. 이 문제를 해결하려면 ssh실행 중이고 로컬 방화벽 규칙이 해당 포트에서 들어오는 연결을 거부하지 않는지 확인하십시오.


1

나는 Linux Lite와 같은 문제가있었습니다. 문제를 해결하려면 설정> 방화벽 구성에 액세스해야했습니다. 루트에 로그인 한 후 들어오는 설정을 허용으로 변경했는데 제대로 작동했습니다.


0

두 가지 생각.

  1. 방화벽은 포트 22의 컴퓨터 연결을 허용합니까?
  2. ssh 데몬 ( sshd)이 실행 중입니까?


0

일반적인 단계는 다음과 같습니다. 1) 대상 호스트에 핑하고 입력 한 IP 주소를 확인하고 교차 확인합니다. 2) 두 호스트 모두에서 sudo service sshd 상태를 확인하십시오. 중지 된 경우 sshd 서비스를 시작하십시오. sshd.service를 찾을 수 없다는 오류가 발생하면 openssh-server를 설치하십시오.-> sudo apt install -y openssh-server를 다시 시작하고 sshd.service를 다시 시작하십시오. 3) 방화벽을 비활성화하거나 구성 파일을 변경하는 것은 마지막 옵션으로 간주해야합니다.

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