「ポート22:接続が拒否されました」エラーが表示されるのはなぜですか?


70

私は得ています

port 22: Connection refused 

サーバーへの接続中にエラーが発生しました。

opensshクライアントとサーバーの両方がインストールされており、実行されています。しかし、まだエラーがあります。助けてください。


2
明確にするために、opensshサーバーはサーバーにインストールされていますか?
ケビン

ポート22でsshが実行されていること、およびポートをブロックするファイアウォールルールがあるかどうかを確認します。
マヌラワイディアナータ

1
私によると、現在ファイアウォールによってブロックされているssh(ポート22)を許可するようにファイアウォールを設定します。
ケタンパテル


これは、おそらく一時的なネットワーク損失が原因で発生する可能性があります。インターネット接続を確認してください。
user648610

回答:


78

私はこの問題を経験し、最終的に適切な答えを得ました。

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

次にraspi-config、ターミナルウィンドウでsshを有効にしました。

これにより、ポート22をsshdに使用できるようになります。


ここで@SDsolarと同じ問題
Nadav B

@Nadiv、私もraspi-configを使用してsshを有効にする必要がありました。これを反映するために回答が編集されました。
–SDsolar

両方のコンピューターで最初の3行を実行すると、ファイルは正常に転送されました。Ubuntuにこれらがデフォルトでインストール/有効になっていないのはなぜですか?connection refusedエラーがそう、それはファイアウォールの問題だった場合、私は知りませんでした、不可解なユーザ名の問題、IPアドレスの問題、などなど非常にイライラさせられます。
ハテフィエンド

sudo ufw allow 22一度働いた。再びエラーが表示され始めました。
vineeshvs

32

サーバー上で、sshdが実際に実行されており、ポート22でリッスンしていることを確認します。

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

結果が得られない場合、またはtcp 0.0.0.0:22でリッスンしていることが表示されない場合は、修正してください。

sshdが実行されており、tcpポート22でリッスンしていることを示す場合は、邪魔なファイアウォールルールがないことを確認してください。再び、サーバー上で:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

または、代わりに、

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

上記のいずれかのルールが表示される場合は、修正する必要があります。

途中でファイアウォールルールが表示されず、サーバー上で実行されているサービスが表示される場合は、ワークステーションと接続先のネットワークを確認します。他のサーバーに接続できますか?独自のインターフェイスまたはループバックアドレスにpingできますか?等。


1
そして、あなたが他のサーバーに接続できるかどうか?
opensourcechris

2
答えてくれてありがとう、私のポートは22番ではありません。2222です。
ヨゲシュダージ

私の結果は得られませんでした。
–SDsolar

sudo ufw allow 22(またはポートが何であれ)
ジョンD

netstatは 非推奨です(Ubuntuの新しいバージョンではデフォルトでインストールされません- コマンド 'netstat'は見つかりませんが、...でインストールできます)。おそらくiproute2の更新ですか?
ピーターモーテンセン

14

これを試して

sudo apt-get remove openssh-client openssh-server

その後

sudo apt-get install openssh-client openssh-server

それは私のために働いた:)

おそらく最も正統的なソリューションではありません... :)


3
dpkgの-再構成が可能にアンインストール/再インストールの溶液の代わりに使用することが容易になるだろう使用
スティーブンマイケルKellat

1
削除する代わりにapt-get purge openssh-serverを使用して動作させる必要がありました。
11101101b

6

Raspbianをインストールした後、同じ問題に遭遇しました。私のために働いたソリューション:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

これが機能する場合、sshd-configを前に変更しておく必要があります。
ガントバート16

sshをセットアップしようとしたときに、Raspbianでsshd_configを編集しました。このソリューションは私のために働いた。
スコット

+1。働いた唯一の解決策!
ナダブB

1

次のコマンドは私のために働いた:

cd /root/.ssh
vi known_hosts

そのファイルのすべてを削除し、ターミナルで入力します。

service sshd restart

ソース:SSH-接続拒否


私にとっても同様の問題がありますが、既知のssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOSTホストをでクリアし、Linuxユーザーと接続しようとしたリモートホストを置き換えます
クリス

1

これもあなたのためにそれを修正するかもしれません。同じポートで、発信IPアドレスからローカルIPへのポート転送接続22を試してください。リモートubuntuコンピューターにSSHで接続できるようになりました。


0

私の場合、静的IPは間違っていました。ping <my_ip>サーバーの切り替え後に行うことで判明。サーバーがオフの場合でも、pingを実行していました。IPを変更することで問題が解決しました。

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