- ベストアンサー
WinSCPの最初のログイン
WinSCP ver3.7.6.306をダウンロードしました。 WinSCP Win→ルータ1→ネット→ルータ1→Linux OpenSSH とりあえずログインをやってみたいので、ホスト名、ポート22、ユーザ名、パスワードを入力してログインボタンを押しました。 横長の文字化けのウインドウが出て、しばらくすると Connection timed out.のエラーダイアログが出ました。 WinSCPの3種のプロトコルはどれもそうでした。 Linux側ではnetstatで tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN です。OpenSSHは起動しているようでした。 ルータのフォワード設定で22のTCPをLinuxに転送しています。 どうしたら接続できますか? 確認するべきところを教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
レスを読み返して疑問が出たのですが・・・#4を読む前にこれを読んでください。 ネットワーク構成とテスト環境が把握しきれていません。まず、ネットワーク構成ですが・・・ Win→ルータ1→ネット→ルータ1→Linux OpenSSH と書かれていますが、ルータWinとLinuxは別なネットワークに存在しますよね?つまり、それぞれ別なグローバルIPのもとにルータがあり、それぞれLANを構成しているという事でよいでしょうか? 「ルータ1」と2つのルータの番号が同じですので、WinとLinuxが同じルータのLANにあるようにも取れるのですが・・・。 テスト環境について、、、 kauernさんがpingやtelnetをテストしたのは、同じLAN内でしょうか?それともLAN1(Winクライアント)→ルータ1→ネット→ルータ2→LAN2(サーバ)でしょうか? どのテストをLAN内で、あるいはインターネット経由で行ったかが原因を割り出すには重要です。
その他の回答 (6)
- takahb
- ベストアンサー率33% (1/3)
もうひとつ IPアドレスの192.168.1.2も仮の値ですよね? 本来ならLinux側ルーターのグローバルIPアドレスのはずです。 とするとpingで応答があったのは、Linuxが返したのではなく ルーターが返した事になると思います。 (DMZとか設定していませんよね?) 192.168.1.2が本当の値とすると、返したのはWinと同じLANにある 別のホストかもしれません。
- takahb
- ベストアンサー率33% (1/3)
1:Linuxのデストリビューションは何でしょう? Fedora? Vine? RHEL? また、バージョンは? 2:apacheにアクセス出来るということは、少なくとも80/TCPのフォワード はうまくいっているのだと思います。apacheのログで、確かに当該Linux へアクセスできたという事は、確認した方がいいと思います。 恐らく22/TCPのルーターでのフォワード設定方法も80/TCPと 同じようなものだと思います。 3:iptablesが、デフォルトで有効になっているかもしれません。 #iptables -L で、現在の設定が確認できます。なにもしていなければ # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination となります 4:構成が気になるのですが、WinとLinuxは、インターネットを経由し、 完全に異なるLAN上にあるのですよね? Win側ルーターで制限がかかっていることは無いでしょうか? 80番と443番しか出れなくしているとか。 あと >しかし、ymserv.netだとアンノンホストになってしまいました。 ymserv.netは、仮名ですよね? ymserv.netの個所は、確かに当該Linux側ルーターのホスト名でしょうか? ブラウザでアクセスできるのは、ホスト名でなくドメイン名でアクセス しているのかもしれません。 http://google.com/ とか。 $host ymserv.net で、IPアドレスは帰ってきますか? (Winにはhostコマンドは無いですが)
補足
ありがとうございます。 VineLinux3.2です。 apacheのログの確認方法が分からないのでWinからブラウザで見ましたかが、現在も自鯖のホームページを観覧できます。 ルータは1つです。 WinもLinuxもこれにつながっています。 # iptables -L でbashが、コマンドが無いと言いました。 # which iptables でも見つからなかったので、インストールされていないようです。 iptablesが難しそうだったのでルータのポートフォワードを使って、外部からのコネクション要求をLinuxに転送しています。 80や445と共に22、10021~10025のTCPを転送しています。 DMZは使っていないので、開けたりないポートがあるのか少し心配です。 10021~10025はWinSCPでアクセスするつもりのProFTPDです。 ymserv.netは仮名です。 http;//locahhost/の確認ですか?Linuxからブラウザでアクセスして、自鯖のトップページが見れました。 $host ymserv.net の前に # echo $host を実行すると空行が出力されました。 Linuxのpingなら 192.168.1.1 (ルータ) 192.168.1.2 (Linux) 127.0.0.1 123.123.45.45 (グローバルIP) ymserv.net (自鯖のURL) このどれも応答があります。 プロキシは無いです。 LinuxマシンではDHCPサーバも動かしていません。
- mynamy373
- ベストアンサー率46% (23/50)
>Puttyで、リストの文字列をダブルクリックすると接続できるらしいのでそうしました・・・ Puttyで接続できていないように思えますね。接続されれば、login as: のようにユーザ名とパスワードを入力するようにメッセージが出ると思います。タイムアウトになるという事は、SSHでの接続がうまくいっていない事というように考えられます。WinSCPも同じポートを使用するので、Puttyが接続できないならWinSCPも無理です。 >telnet 192.168.1.2 22 でSSHの情報が出ないならば、SSHデーモンが起動していないか、クライアント→サーバ間の経路に問題があると考えられます。SSHデーモンは起動しているようなので、後者が怪しいです。 >WinからもLinuxSSHサーバ自信でも、ping 192.168.1.2は正常な応答がありました。 ケーブルの破損やルータの故障ではない事が分かります。ホスト名でサーバが見つからないのは、名前解決していないからです。LAN内のみでテストしているのならば、外部のDNSに問い合わせている訳ではないので、クライアントのhostsファイルに記述すれば解決します。 >Linux側ではnetstatで tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN です。 私の場合には、 tcp 0 0 *:ssh *:* LISTEN と表示されます。「0.0.0.0:22」の部分ですが、以下のサイトに書いてあります。 http://www.atmarkit.co.jp/fnetwork/netcom/netstat/netstat.html >鍵は必要なんですか? 一度目のアクセスで鍵を生成&登録する事になると思います。 総じて、クライアント~サーバの経路中に問題があるように思えます。サーバ側のルータ設定が間違っていませんか?「特定のIP又はホスト名(クライアント)から、22番ポート(SSHやSFTP)でアクセスされたら、サーバのプライベートIP&22番ポートに接続する」というように設定されていますか?
補足
ありがとうございます。 この際PuTTYもやってみることにしましたが、おっしゃる通りPuTTYもだめでした。 WinSCP以前にPuTTYの接続確立からやります。
- mynamy373
- ベストアンサー率46% (23/50)
>rootのログインがnoだったのをyesにしました root を許可するのは危険なので、拒否にしましょう。今回の件は、ユーザが原因ではないと思います。 >Linuxで $ ssh 127.0.0.1 を実行すると、何度か尋ねられ、yes、と答えたらユーザのホームに.X何とかという何かが作られたみたいですが、それでもWinSCPは変わりませんでした。 私の場合、そのような作業はしていません。最初のアクセスの再に鍵を作り、以降からはそのままログインできるようになっています。 サーバはVineですが、SSHデーモンを起動しているだけで、sshd_confの中身はそれほど変えていません(SSHのバージョンを2に限定したくらいです)。 さて、トラブル解決は物理的な所から確認します。 ケーブルやハブ、ルータの故障はありませんか?クライアントからPINGなどで確認してみましょう。 次に、#2の方が仰るように、iptableやipchainのようなファイアウォールは使用していませんか? DOSプロンプトからtelnetコマンドでSSHポートが空いているか確認してみてはどうでしょうか? 書式→telnet サーバIPorホスト名 22 というように、22番にアクセスするようにしてみると、正常なら SSH-2.0-OpenSSH_3.7.1p2 などと、起動しているSSHのバージョンが表示されると思います。表示されなければ、ルーティングがうまく行われていないか、ファイアウォールなどでポートが空いていないか、サービスが起動していない事になります。 また、WinSCPでなくPuttyやTTSSHなどではアクセスできますか?
お礼
ありがとうございます。 rootはnoにしました。 WinSCPでファイルの送受信をするのが目的です。 鍵は必要なんですか? WinSCPに秘密鍵の設定がありますが、接続の時に秘密鍵かパスワードのどちらかが必要なので、パスワードでログインするなら鍵は使わなくてもいいんですよね? サーバに鍵は必要ですか? Puttyで、リストの文字列をダブルクリックすると接続できるらしいのでそうしました。 タイトルバーに目的のサーバ名が表示され、クライアントは真っ黒なウインドウになり、30秒後ぐらいにタイムアウトのダイアログが出て、タイトルバーの文字はPutty(inactive)になってしまいました。プロクプトは出ていますがキーを押しても文字は打てません。
- takahb
- ベストアンサー率33% (1/3)
1:Linux側のログを見る /var/log/* あたり 2:iptablesの設定を見直す 22/tcpがあいているか 3:/etc/hosts.allow,/etc/hosts.deny sshdのエントリ 4:SELinux これはよく分かりません 5:ルーターを再起動してみる
お礼
すみません。回答場所がばらばらになってしまいました。 WinからもLinuxSSHサーバ自信でも、ping 192.168.1.2は正常な応答がありました。 しかし、ymserv.netだとアンノンホストになってしまいました。 apacheを起動していて、ymserv.netでサーバのトップページのindex.htmlは表示されます。 ipchainも知らない技術なので何もしていません。 Winから telnet 192.168.1.2 22 ですと、ホストへの接続が失われましたと表示されます。 telnet myserv.net 22 ですと、接続できませんでしたと表示されます。 Linux側ではnetstatで tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN です。サービスの軌道の確認はこれでいいですか? /etc/init.d/sshd restartで再起動もできます。
補足
ありがとうございます。 /var/log/* を見ましたが、sshのログファイルはありませんでした。 sshのログの設定自体も分かっていないのでログが見れないので原因を見つけにくいです。 iptablesも分かりません。 /etc/hosts.allowは回答していただいてから記述の方法を調べて分かったのでsshの設定をしました。 それでもタイムアウトでした。 ルータではTCPしか転送していなかったので22UDPも転送するようにして再起動しました。 それでもタイムアウトでした。
- mynamy373
- ベストアンサー率46% (23/50)
ユーザー名をroot にしていませんか? SSHの初期設定では、root でのリモートアクセスを禁止しています。(危ないので普通は禁止したままにします) もしroot でしか試していないのならば、一般ユーザでやってみましょう。 また、WinSCPの一度目のアクセスでは、鍵の生成について尋ねる文章が出たと思うのですが・・・。 >WinSCPの3種のプロトコル 私の場合はSFTP(SCPの代替を許可)というものを使用しています。
補足
ありがとうございます。 sshd_confだったと思いますが、rootのログインがnoだったのをyesにしました。 Linuxのrootユーザも一般ユーザもWinSCPしましたが、どちらのユーザもWinSCPはタイムアウトしました。 Linuxで $ ssh 127.0.0.1 を実行すると、何度か尋ねられ、yes、と答えたらユーザのホームに.X何とかという何かが作られたみたいですが、それでもWinSCPは変わりませんでした。 http://www.ex.media.osaka-cu.ac.jp/windows/winscp.html を見ると、ユーザ名とパスワードを入力すると秘密鍵のボックスが非活性になっているんですが、非活性にならないと異常なんですか? Windowsには鍵を用意しておく必要はありますか?
補足
分かりにくくてすみません。 ルータは1つです。 全てローカルで解決するのではなくて、出先からでもFTPのようなファイル転送ができるようにしたいです。 Linux自信からなら $ ssh 127.0.0.1 でsslでログインできたように見えました。