
Ubuntu日本語フォーラム

ログインしていません。
SSHで外部から自宅のUbuntuにログインしようとしたのですがうまくいきません。
openssh-server をインストールして、LAN内からはログインできるようになったのですが、LAN外から(グローバルIPアドレスで)ログインしようとすると、「ネットワークエラー:接続が拒否されました。」と表示されてログインできません。
色々調べていくうちに/etc/ssh/sshd_config を書き換えなくてはならないとあったのですが、どこをどう書き換えたらよいのか分かりません。
ポートが開放されているかどうかを確認するためにnmap localhost を実行したところ。
22/tcp open ssh
と表示されたのですが、http://www.akakagemaru.info/port/tcpport.php で確認したところ開放されていないということでした。
どうしたらよいのでしょうか?
オフライン
インターネットに接続しているルーターで、インターネット側から 22 番ポートへの接続を LAN 内の ubuntu の 22 番ポートへ転送するように設定してありますか?
オフライン
ルーター側からポート開放の設定を行ったところ、今度は「接続がタイムアウトしました。」と表示されるようになりました。
ルーターの設定が画面には「SSH(TCPポート:22) 有効」と表示され、上のサイトから再度確認してみたところ、開放されているとの結果が出ました。
オフライン
Ubuntuのファイアウォールが動作してるんでしょうかね?
sudo ufw status
で確認してみてください。
非アクティブだったら、sshを起動させてみてください。
sudo service sshd restart
オフライン
sudo ufw status を実行してみたところ、「状態:非アクティブ」と表示されたので、おっしゃるとおりに sudo service sshd restart を実行してみたところ、「sshd: unrecognized service」と表示されました。
そこで /etc/services に
sshd 22/tcp
と追記してみたのですが、やはり同じ事をいわれました。
試しに sudo service ssh restart を実行してみたのですが、やはり sudo service sshd restart を実行してみたら「状態:非アクティブ」と言う結果でした。
オフライン
TcpWrapperって分かりますか?
なんらかの外部公開サーバーを起動させているなら、上の文字の意味がわからないとセキュリティを維持することができません。
回答してしまって良いものか迷ってます。
まずはTcpWrapperの意味となにをどうするとどうなるかを理解してください。
# う。なんか冷たいですかね????
オフライン
解決策では無くて申し訳有りません.
dcccxvi さん による投稿:
sudo service sshd restart を実行してみたところ、「sshd: unrecognized service」と表示されました。
service コマンドで ssh サービスを指定するのには sshd ではなく ssh を指定します.
$ service ssh status ssh start/running, process 736 $ service sshd status sshd: unrecognized service
dcccxvi さん による投稿:
そこで /etc/services に
sshd 22/tcp
と追記してみたのですが、
は,/etc/services に本来から有る
ssh 22/tcp # SSH Remote Login Protocol
と被ってしまいます.
それがどういう影響を持つのかは知りませんが,消すのが無難でしょう.
オフライン
zaganさん
TcpWrapperについて調べて見ましたが、
http://shikichi.ddo.jp/tcp_wrapper.html#tcpwrapper_set_flow
に書いてある/etc/inetd.conf、etc/proftpd.conf、/etc/hosts.allow、/etc/hosts.denyなどのファイルが存在しませんでした。
einundzwanzighundertsechsさん
>service コマンドで ssh サービスを指定するのには sshd ではなく ssh を指定します.
sudo service sshd restart じゃなくて
sudo service ssh restart でよいということでしょうか?
/etc/servicesに追記した部分については、試してみてダメだと分かった直後に削除しました。
書き忘れてすいません。
見当違いのことを言っていたらすみません。
オフライン
> einundzwanzighundertsechs
ご指摘感謝。ミスを避けるためにも、検証してから書き込むべきだったのですが、ついつい・・・
皆さんに陳謝いたします。
> dcccxviさん
TcpWrapperだけで検索しませんでした?
「Debian Tcpwrapper SSH」とかってすると・・・
オフライン
ubuntu では SSH サーバーの接続に TCPWrapper を使ってはいません
SSH サーバー (sshd [openssh-server]) 単独で接続を確立しています
初期状態から明示的に TCPWrapper を使うように変更していれば別ですが
#1 で「LAN内からはログインできるようになった」とあるので少なくとも SSH サーバーは正常に動作しているように思えます
#3 で「ルーター側からポート開放の設定を行った」ところ「接続がタイムアウト」したということなら、次に確認指定のは以下の点です
接続しようと操作している PC は ubuntu と同じ LAN 内にありませんか?
この状況でルーターのグローバル IP に ssh 接続しても、大抵の場合はタイムアウトになります (ルーターによってはうまくいくものがあるかもしれない)
PC を LAN から外して、ubuntu が繋がるインターネットへの回線とは全く別の回線を使ってインターネットに接続しなければ、グローバル IP への接続テストはできません
オフライン
ryさん
お察しのとおり、同じLAN内にあります。
同じLAN内からはローカルIPで、LAN外からはグローバルIPで接続しなければならないということでしょうか?
明日外から接続テストをしてみます。
ありがとうございます。
オフライン
先ほど家のPC(サーバーじゃないほう)から外部のサーバーにssh接続して、そこからさらに家のサーバーにssh接続して見ましたが、タイムアウトしました。
さらに、念のためLAN内からの接続を試みたところ、以前は問題なく接続できていたのに接続を拒否されました。
何かまずいところをいじってしまったのでしょうか?
オフライン
一人で何回も連投すいません。
先ほど#1のサイトでポート開放の確認をしてみたところ、開いていないとの結果が出ました(#3のときは開放されているという結果でした)。
しかしルーターの設定画面を見たらちゃんと開いているようなので、再び nmap localhost を実行してみたところ、22/tcp がなくなっていました。
ところがufwは#5のとおり非アクティブですし、ファイアウォールで弾いているのではないようなので、ポート開放云々以前の問題なのかもしれません。
オフライン
#1 から #11 までの間で行った何かが原因で 22/tcp が閉じてしまったのでしょうね
まず ubuntu の端末で sudo service ssh status を実行して以下のような結果が表示されるかを確認
ssh start/running, process 17542
※太字の部分以外は環境で異なる
これ以外の結果なら SSH サーバーが起動していない
SSH サーバーが起動していないときは sudo services ssh start を実行して、SSH サーバーを起動する
SSH サーバーが起動しているのを確認したら、次に sudo netstat -lnp | grep :22 を実行して以下のような結果が表示されるかを確認
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 17542/sshd
※太字の部分以外は環境で異なる
これ以外の設定なら /etc/ssh/sshd_config ファイルが間違っている可能性が大
上記を確認できれば、(少なくとも) LAN 内からは SSH で接続できるはず
オフライン
回答ありがとうございます。
まずsudo service ssh status を実行してみると、
$sudo service ssh status ssh stop/waiting
となったので、sudo services ssh start を実行してみると、
$ sudo service ssh start ssh start/pre-start, process 1910 $ sudo service ssh start (←念のためもう一回実行してみました。) ssh start/running, process 1946
しかし、再びsudo service ssh status を実行してみると、
$sudo service ssh status ssh stop/waiting
となり、sudo netstat -lnp | grep :22 を実行してもなにもひょうじされませんでした。
これでもだめなら/etc/ssh/sshd_config の記述に間違いがあるということなので、
http://www.saturn.dti.ne.jp/~jpug/doc/l … onfig.html
を見て比較して見ましたが、正直自分では判断がつきません(また変なところをいじって問題が起きるのも嫌ですし)ので、マナー違反かも知れませんが /etc/ssh/sshd_config の内容をここに載せさせていただきます。
上のサイトを見てデフォルト値と異なっている部分には後ろに※マークをつけておきました。
# Package generated configuration file See the sshd_config(5) manpage for details Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 ※ # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 768 # Logging SyslogFacility AUTH LogLevel INFO # Authentication: LoginGraceTime 120 PermitRootLogin yes StrictModes yes RSAAuthentication yes PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys # Don't read the user's ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords #PasswordAuthentication yes # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes ※ X11DisplayOffset 10 PrintMotd no ※ PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes
オフライン
色々調べてみて、デバッグモードでsshdを起動してみることにしました。
$sudo /usr/sbin/sshd -ddd (略) /etc/ssh/sshd_config: line 2: Bad configuration option: See (略) /etc/ssh/sshd_config: terminating, 1 bad configuration options
となったので再び /etc/ssh/sshd_config を確認して見たところ二行目のコメントアウトが外れていました(何とマヌケな...)。
その部分をコメントアウトしてsshを起動してみたらLAN内からは正常に接続できました。
ただ、#12の方法で外部からの接続を試みたらやはりタイムアウトしました。
そこで#1のサイトで確認して見たところ、ポートは開いていましたが、IPアドレスの値が変わっていたのでIPで接続して見たところ、正常に接続できました。
調べてみるとIPアドレスは固定できるということですが、そのことにリスクはあるのでしょうか?
オフライン
もう解決されたようですが、 あなたと全く同じ現象である、 http://hibari.2ch.net/test/read.cgi/linux/1314503687/507-514 も大いに参考になるかと思います。
グローバル IP アドレスは、通常はルーターの再起動 (インターネットへの再接続) で変わります
これを固定するには ISP にその旨を申し込みます
ほとんどの ISP ではグローバル IP を固定するサービスには追加で料金が発生します
グローバル IP を固定するサービスを提供していない ISP もあります
グローバル IP を固定しなくても、ダイナミック DNS サービスを利用すれば fqdn が使えるようになります
#これ以上はトピック タイトルとの乖離が大きくなるため、必用に応じて新たにトピックを建ててください
#SSH サーバーについての話題であれば、このまま継続して構いません
オフライン
STGSAGWANさん
ありがとうございます。読んでみます。
ryさん
そうですね。もうssh接続自体はできるようになりましたし、このトピックは閉じさせていただきます。
ありがとうございました。
オフライン