別のコンピューターにSSH接続できませんが、pingできますか?


20

別のコンピューターにSSH接続できませんが、pingできますか?何が欠けているのか分かりませんか?
Netgearルーターを使用する

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がインストールされていることを確認します(debianの例を使用)

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閉じていると表示されたら実行します(再びdebian / ubuntuの例)

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

2つの考え。

  1. ファイアウォールは、ポート22でのマシンへの接続を許可しますか?
  2. sshデーモン(sshd)が実行されていますか?


0

一般的な手順は次のとおりです。1)宛先ホストにpingを実行し、入力されたIPアドレスを確認してクロスチェックします。2)両方のホストでsudoサービスのsshdステータスを確認します。停止した場合は、sshdサービスを開始します。エラーsshd.service not foundが表示された場合、openssh-server-> sudo apt install -y openssh-serverをインストールし、sshd.serviceを再起動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.