다른 컴퓨터로 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와 같은 문제가있었습니다. 문제를 해결하려면 설정> 방화벽 구성에 액세스해야했습니다. 루트에 로그인 한 후 들어오는 설정을 허용으로 변경했는데 제대로 작동했습니다.
답변
두 가지 생각.
- 방화벽은 포트 22의 컴퓨터 연결을 허용합니까?
- 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) 방화벽을 비활성화하거나 구성 파일을 변경하는 것은 마지막 옵션으로 간주해야합니다.