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

다른 컴퓨터로 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$



답변

서버가 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


답변

별난 어두운 장면이지만 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.


답변

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


답변

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


답변

두 가지 생각.

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

답변

이 명령은 저에게 효과적이었습니다. 이 시도.

update-rc.d -f ssh enable 2 3 4 5


답변

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