SSH接続の「接続拒否」エラーを解決する方法は?


96

自宅にUbuntu Server 10.10 32ビットがあります。私はPCからPutty経由でSSH接続をしています。

問題は、時々シームレスにログインできることです。ただし、次のようなエラーが表示される場合があります。Network error: Connection refused.

それから、何も変更せず、数回ログインして、しばらく待ってからもう一度やり直します。ログインできる場合もあれば、できない場合もあります。私にはかなりランダムに思えます。

これを解決するにはどうすればよいですか?

編集:

そして、時々、PuttyはテキストをNetwork error: Software caused connection abort表示した後にエラーを出しlogin as:ます。

ping -tの出力は次のとおりです。

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

ルーターのファイアウォールをオフにすると、すべてが機能するようになりました。それ以外は、PCから外部IPを入力してもWebサーバーにアクセスできません。


次回はそのようにガタガタします。再度pingを実行しますが、まだ機能しますか?このマシンにsshする人は何人ですか?
myusuf3

このサーバーをsshするだけです。
frbry

ここでもまったく同じ問題であり、ログインまたはパスワードの入力後に、正常な接続(その後何時間も機能する)、「接続拒否」、「ソフトウェアによる接続中断」が混在しています。いくつかの追加の詳細を提供するために:私の場合、それは「古いネットワークカード」エミュレーションを使用する、Microsoft Hyper-Vホスト上の64ビット仮想マシン(Ubuntu Server 10.10を実行)です。
hheimbuerger

サーバーにSSHがインストールされていますか?
ウィリアンソアレス14年

回答:


82

これを機能させるには、Linuxにopenssh-serverをインストールする必要があります。Ubuntuの内部IPアドレスを取得し、そのIPを使用して、ルーターのポート22(SSH)セクションでポート転送を設定します。ネットワークの外部からSSHを使用する予定がない場合、これは必須ではありません。

openssh-serverのインストール方法は次のとおりです。

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]

10
質問に直接答えませんが、UbuntuにはSSHサーバーがプリインストールされていないため、これは便利です。
オスタティ

最近、新しいラップトップを手に入れましたが、デフォルトではインストールされていませんでした= D
Izkata

40

このSSHエラーメッセージが表示されたとき、IPアドレスの競合が根本原因であることが判明しました。

上記の回答を読んだ後、IPアドレスの競合が疑われましたが、アドレスの競合が問題であるかどうかを証明する必要がありました。

このすばらしい記事では、arp-scanを使用して、2つのハードウェアが同じIPアドレスを要求しているかどうかを確認する方法を示しました。

私の場合、サーバーマシンの静的IPアドレスは192.168.1.42でした。arp-scanを使用してそのアドレスを確認しました。

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

案の定、上記のように競合がありました。次に、grepなしでarp-scanを実行し、0.43が利用可能であることを発見し、行って編集/etc/network/interfacesし、静的IPを.42から.43に変更しました


実際にそのコマンドを実行すると、ボックスに1行しか表示されませんでしたが、名前は別のデバイスの名前でした。
-assylias

IPアドレスの競合に関する正しい方向のポイントをありがとう。同様の問題がありました!+1
DominikAngerer

ちょうど私に多くの時間を保存...賞賛...
クリス・バーロウ

この問題を解決するには、ルーターを再起動する必要がある場合があります。
ガブリエルステープルズ

14

arping接続に問題があるIPアドレスで使用します。これにより、各ping応答のMACアドレスが表示され、不正なMACアドレスのマスクが解除されることが期待されます。

arping 192.168.2.254

DHCPサーバー上のDHCP IPアドレスプールを確認し、DHCPプールと衝突する静的IPがデバイスにないことを確認する必要があります。

これらの手がかりは、重複するIPを示しています。

  • ping ttlと往復時間は2つの異なるサーバーのように見えます
  • 再起動せずに断続的に切断する

素晴らしい、正しい道を教えてくれました!2番目のMACアドレスでトレースし、プリンターのIPを変更することができました
Canadian Luke

1
-I wlan0(wlan0は私のwifiデバイス)を追加する必要がありました
グーア

6

静的IPアドレスを持っていたのに、同じ問題がありました。ネットワーク上の別のサーバーに同じ(静的)IPアドレスが割り当てられていたことがわかります。(Duh。)したがって、問題はIPアドレスの競合によって引き起こされているように見えますが、さまざまな可能性のある原因が考えられます。静的に設定しても問題がある場合は、マシンをシャットダウンしてアドレスにpingを実行してみてください。返信があったら、同じアドレスを持っている他のものを探し始めてください。


1
私は同じ症状を経験し、サーバーと同じIPアドレスを持つマシンまで追跡しました。
SabreWolfy


4

ssh configのファイルを開きます。

sudo nano /etc/ssh/ssh_config

港を見つける

#port 22

ポートオプションをシャープに削除

次にファイルを保存し、ctrl + xサービスを再起動します

sudo service ssh restart

3

これは、サーバー自体よりもネットワーク機器の問題に見えます。

イーサネットリンクのアップ/ダウン(またはワイヤレスの場合はwlan)については、/ var / log / messagesを確認してください。その場合は、ケーブルを変更してみてください。


はい、ネットワークの外部(サーバーとPCが配置されている)からssh接続を確立することに成功しました。うまく機能しているようです。私のサーバーもWebサーバーです。PCからポート80で接続しようとすると、ADSLモデムのログインページが表示されます。しかし、ネットワークの外側にある別のコンピューターから同じことを試みると、ApacheのIt Worksページが表示されます。
frbry

PCのIP、サーバーのIP、内部のAdslルーターのIPは何ですか?
forcefsck

PC:192.168.2.2(DHCPから受信)サーバー:192.168.2.254(静的、DHCP範囲外)ADSLルーター:192.168.2.1
frbry

192.168.2.2から192.168.2.254のポート80に接続すると、adslモデムのログインが取得されますが、少し混乱していますか?
forcefsck

1
何らかの種類のWebプロキシをサーバーにセットアップしていない限り、明らかに、adslモデムは192.168.2.254への要求に応答しており、おそらくConnection refusedsshでエラーが発生します。したがって、adslモデムの設定を再確認する必要があります。
-forcefsck

3

私はこの正確な問題を確認できます:それは単純な接続の問題ではありません。イーサネットリンクは状態を変更しません。サーバーはping経由で到達可能です。sshはときどき問題なく接続し、その後一見ランダムに接続しないか、既存のsshセッションがドロップします。これはUbuntu 10.04および11.04で発生します。hheimbuergerの提案に続いて、サーバーに静的IPを指定しましたが、これで修正されたようです。

回避策:アダプタをDHCPから静的に変更します。


1

私はまったく同じ問題を抱えていましたが、私の場合はIPアドレスの競合であることが判明しました。Ubuntu VMには動的アドレスがありましたが、別のマシン(この場合は電話)には、DHCPサーバーが知らない静的IPが割り当てられていました。

DHCPサーバーによってUbuntu VMに割り当てられたIPを変更するだけで、すべての接続の問題が修正されました。


1

これは、基本的に次のいずれかの理由によるものです。

  1. サーバーにアクセスしようとしているネットワーク上のユーザーが多すぎます
  2. ネットワーク上の複数のコンピューターにサーバーと同じIPがあり、IPの競合が発生している
  3. 間違ったユーザー名または資格情報が取り消されました

0

iptablesサーバー上のルールを確認することをお勧めします。新しいSSH接続を制限するルールがあるように思えます。

次のルールでは、1分間に5つの新しい接続が許可されます。この制限を超えると、しばらく時間が経過すると新しい接続が拒否されます。

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

IPTables / Netfilterのドキュメントを参照して、少しスクロールしますlimit


0

arp-scanは2つの重複デバイスを表示していますが、Win8でAdvanced IPスキャナーを実行すると、すべて正常に見えます。したがって、彼らは常に同意するとは限りません。

1時間のリースのみを提供するようにルーターに指示して、すべてのリースを取り消すようにルーターを設定します。それが解消するかどうかを確認する時間を与えます。

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