web-dev-qa-db-ja.com

CYGWIN sshd「ポート22:接続が拒否されました」

これをグーグルで死にました、解決できません。別のマシンからCYGWINsshdに接続できません。 Netstatは、接続が確立されていることを示しています。ローカルで接続できますが、問題ありません。

[Oracle@aserver ~]$  ssh myid@mycomp
ssh: connect to Host mycomp port 22: Connection refused

Mycompで:

$ netstat -a | grep ssh
  TCP    MYCOMP:ssh            MYCOMP.mydomain.com:0  LISTENING
  TCP    MYCOMP:1161           aserver.mydomain.com:ssh  ESTABLISHED

ローカルホストからの正常なログイン:

$ ssh myid@mycomp
myid@mycomp's password:
Last login: Tue Sep 14 14:27:30 2010 from mycomp.mydomain.com
Fanfare!!!
You are successfully logged in to this server!!!

XP sp3、CYGWINを本日更新しました。クリーンアップと再構成を試みましたが、役に立ちませんでした。

クリーンアップ(ハーブメーダーへのクレジット http://www.cygwin.com/ml/cygwin/2008-10/msg00370.html ):

# Remove sshd service
cygrunsrv --stop sshd
cygrunsrv --remove sshd
# Delete any sshd or related users (such as cyg_server) from /etc/passwd
#   (use your favorite editor)
# Delete any sshd or relaged users (such as cyg_server) from the system
Net User sshd /delete

構成、設定:

$ ssh-Host-config -y
*** Query: Overwrite existing /etc/ssh_config file? (yes/no) yes
*** Info: Creating default /etc/ssh_config file
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) yes
*** Info: Note that creating a new user requires that the current account have
*** Info: Administrator privileges.  Should this script attempt to create a
*** Query: new local account 'sshd'? (yes/no) yes
*** Info: Updating /etc/sshd_config file
*** Query: Overwrite existing /etc/inetd.d/sshd-inetd file? (yes/no) yes
*** Info: Creating default /etc/inetd.d/sshd-inetd file
*** Info: Updated /etc/inetd.d/sshd-inetd


*** Warning: The following functions require administrator privileges!

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []

*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start sshd' or `cygrunsrv -S sshd'.  Otherwise, it
*** Info: will start automatically after the next reboot.

*** Info: Host configuration finished. Have fun!

myid@MYCOMP /cygdrive/c/Documents and Settings/myid
$ cygrunsrv -S sshd

myid@MYCOMP /cygdrive/c/Documents and Settings/myid
$ cygrunsrv -Q sshd
Service             : sshd
Display name        : CYGWIN sshd
Current State       : Running
Controls Accepted   : Stop
Command             : /usr/sbin/sshd -D
2

別のコンピューターからポート22にTelnetできますか?

telnet <mycomp> 22

接続が拒否された場合(そしてローカルホスト経由で接続できる場合)、これは間違いなくファイアウォールの問題です。 Windowsファイアウォール以外にもMcAfee、ZoneAlarmなどのファイアウォールがあり、内部からはアクセスできますが(正しいポートでリッスンしていることを示します)、外部からはアクセスできないため、ブロックされているようです。 (外部ポートが閉じていることを示します)。

驚いたことに、 Mozillaはファイアウォールの設定に関して非常に優れています -Windowsファイアウォールを含みます。試してみる。ファイアウォールが実行されていないと思っているからといって、ファイアウォールが実行されていないという意味ではありません。

2
Andrew M.

Windowsファイアウォールが実行されている可能性はありますか?

SSHクライアントを詳細モードまたはデバッグモードで実行しましたか?

1
T.P.

私はこの正確な問題に数週間取り組んできました。このケースには直接適用されない場合があります。しかし、誰かに役立つことを願って、ここで私の経験を共有するつもりです。

CygwinSSHDは私のWindows7 Home PremiumBoxで実行されています。

  • ローカルホストから、またはIPアドレスを入力してマシンにSSH接続することができました。これが試みられ、PuTTYで成功しました。
  • LAN上の他のデバイスからマシンにSSH接続できませんでした。
    • これがファイアウォール、ウイルス対策、またはセキュリティの問題ではないことを確認しました。ポート22でApacheポータブルを使用してこれをテストしました。ポート22で到達できました。また、sshd.exeがネットワーク上で通信するための完全な機能を与えられていることを確認しました。
    • マシンのすべてのファイアウォール機能をオフにしました。それは、Windows DefenderとWindowsファイアウォールだけでした。これは問題を解決しませんでした
  • 少し掘り下げた後。それはPuTTY自体にあるものであることがわかりました。なんらかの理由で、Linuxサーバー(クラウド内)からopensshクライアントを問題なく使用できます。 PuTTYキーと関係があると思います。
  • PuTTY.exe -cleanupを実行しましたが、まだ問題がありました。
  • Linuxサーバーの1つで、次のssh_exchange_identificationを取得します。リモートホストによって接続が閉じられました
  • 私のLinuxサーバーの別の1つでは、接続するだけです。

お役に立てれば。

デボン

-編集-わかりました。それはさらに奇妙になり始めました。私は4つのクラウドサーバーを持っており、それぞれが異なるドメインに関連付けられています。 1つのサーバーは私のsshdにログインできましたが、他のサーバーはログインできませんでした。

Hosts.denyのすべてのエントリをコメント化することで、これを修正しました。また、hosts.allowファイルを次のように調整しました。

ALL : localhost 127.0.0.1/32 [::1]/128 [::ffff:127.0.0.1]/128 : allow
SSHD : ALL

それは私のためにそれを修正しました。

0