質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

6993閲覧

RaspberryPiへのipアドレスでのssh接続が出来ない。

betchi_0727

総合スコア5

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

2クリップ

投稿2020/04/20 16:52

編集2020/04/21 06:05

前提・実現したいこと

RaspberryPiを使用して家電をコントロールする機器を作成しています。sshを使用して開発しているのですが、接続できない問題が解決できないので質問を投稿します。
ipアドレスでの接続を可能にする方法が有れば教えていただきたいです。

発生している問題

ssh接続時に、

・ipアドレスを指定して接続
・ユーザー名を初期状態のpiから変更済み

とした時のみ接続ができない状況です。

具体的には、ログイン画面は表示されますが、ユーザー名とパスワードを入力した後進まなくなります。
時間によって挙動が異なります。
・ユーザー名とパスワードを入力した後進まなくなる
・入力待ち状態にはなるが一切入力を受け付けない
**・受け付けるが反映まで時間がかかりすぎる(sudoと打っても五秒後くらいに表示される) **
・受け付け状態になるが、打った文字が反映されない
などです。

また、ipアドレスではなく「ホスト名.local」を使用した場合は上記の問題は発生しません。

試したこと

・インストール時にsshファイルを作成してsshを有効化
・完全初期状態でのraspberrypi.localとipアドレスでの接続ができることを確認
・タイムゾーン、言語などの一通りの設定は済んでいる

この状態で、ユーザー名の変更の作業をしました。
参考にしたページ

新規作成したユーザー(tmp)でipアドレスでの接続は可能ですが、piユーザーの名前変更を行ったユーザー(参考ページではnewpi)でのipアドレスで接続すると問題が発生します。

また上記の通り、newpiユーザーであっても「ホスト名.local」での接続は可能です。

新規作成したユーザーtmpは、参考にしたページ通り削除済みです。

追記

/var/log/auth.log の内容抜粋です。
質問当初と少し状況が変化してしまいました。(再起動くらいしかしていませんが)
しかし依然として操作ができる段階にはなっていません。

RaspberryPiのインターネットへの接続を確認

IPアドレスで接続を試行:コマンド受け付け状態にならない→ターミナルが閉じてしまう

「ホスト名.local」で接続:正常に通信可能

この状態で「/var/log/auth.log」を確認

Apr 21 11:33:44 HostName sshd[458]: Server listening on 0.0.0.0 port 22. Apr 21 11:33:44 HostName sshd[458]: Server listening on :: port 22. Apr 21 11:34:19 HostName sshd[478]: Accepted password for UserName from "接続したPCのIPv4" port 64829 ssh2 Apr 21 11:34:19 HostName sshd[478]: pam_unix(sshd:session): session opened for user UserName by (uid=0) Apr 21 11:34:20 HostName systemd-logind[268]: New session c1 of user UserName. Apr 21 11:34:20 HostName systemd: pam_unix(systemd-user:session): session opened for user UserName by (uid=0) Apr 21 11:34:58 HostName sshd[478]: pam_unix(sshd:session): session closed for user UserName Apr 21 11:34:58 HostName systemd-logind[268]: Session c1 logged out. Waiting for processes to exit. Apr 21 11:34:58 HostName systemd-logind[268]: Removed session c1. Apr 21 11:36:00 HostName sshd[519]: Accepted password for UserName from "接続したPCのIPv6" port 65043 ssh2 Apr 21 11:36:00 HostName sshd[519]: pam_unix(sshd:session): session opened for user UserName by (uid=0) Apr 21 11:36:00 HostName systemd-logind[268]: New session c2 of user UserName. Apr 21 11:36:00 HostName systemd: pam_unix(systemd-user:session): session opened for user UserName by (uid=0)

###追記2
・IPv6での接続:可能
・UseDNS(sshd_config)の項目:「UseDNS no」がコメントアウト状態だったので、「#」を外して再起動したが状況は変化なし
・hosts.allow、hosts.deny、access.conf のファイル:初期状態からいじっておらず、すべてコメントアウト状態
・resolv.conf:PCで調べたDNSサーバーとの一致を確認

WindowsコマンドプロンプトでのデバックSSH(ssh -vvv user@192.168.10.10

UserName@"ラズベリーパイのIPv4"'s password:"正しいパスワードを入力" debug3: send packet: type 50 debug2: we sent a password packet, wait for reply debug3: receive packet: type 52 debug1: Authentication succeeded (password). Authenticated to ラズベリーパイのIPv4 ([ラズベリーパイのIPv4]:22). debug1: channel 0: new [client-session] debug3: ssh_session2_open: channel_new: 0 debug2: channel 0: send open debug3: send packet: type 90 debug1: Requesting no-more-sessions@openssh.com debug3: send packet: type 80 debug1: Entering interactive session. debug1: pledge: network debug1: console supports the ansi parsing debug3: Successfully set console output code page from:932 to 65001 debug3: Successfully set console input code page from:932 to 65001 debug3: receive packet: type 80 debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0 debug3: receive packet: type 91 debug2: channel_input_open_confirmation: channel 0: callback start debug2: fd 3 setting TCP_NODELAY debug2: client_session2_setup: id 0 debug2: channel 0: request pty-req confirm 1 debug3: send packet: type 98 debug2: channel 0: request shell confirm 1 debug3: send packet: type 98 debug2: channel_input_open_confirmation: channel 0: callback done debug2: channel 0: open confirm rwindow 0 rmax 32768

ここで停止してしまいます。IPv6なら、ここから

debug3: receive packet: type 99 debug2: channel_input_status_confirm: type 99 id 0 debug2: PTY allocation request accepted on channel 0 debug2: channel 0: rcvd adjust 2097152 debug3: receive packet: type 99 debug2: channel_input_status_confirm: type 99 id 0 debug2: shell request accepted on channel 0 debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98 Linux RoomControlHost 4.19.97+ #1294 Thu Jan 30 13:10:54 GMT 2020 armv6l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Apr 21 14:50:34 2020 from PCのIP HostName@Username:~ $

となることを確認しています。

補足情報

SSHターミナル:RLogin
接続端末、raspberry pi共にWiFi接続
raspberry piへのPingは通ることを確認
ハードウェア:RaspberryPi Zero W
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2020/04/20 21:53

認証のログである /var/log/auth.log に何か書いてありませんか?それぞれ、成功時(newip@ホスト名.localとtmp@IPアドレス)、失敗時(newip@IPアドレス)で記録されるログを質問に追記してください。
betchi_0727

2020/04/21 02:49 編集

ご指摘ありがとうございます。ログを追記しましたのでよろしくお願いします。 また当初と少し状況が変化してしまいました。すみません。
take88

2020/04/21 05:14

RLoginが自動的に閉じないようにして試せますか? サーバーのオプションで、サーバー→通信共通→「接続が切れてもウィンドウをを閉じない」にチェックして、「接続が切れると自動てプログラムを終了する」のチェックを外してください。 多分、ターミナルに何かしら 表示されてると思うので、それを追記してみてください。
betchi_0727

2020/04/21 05:36

ご指摘ありがとうございます。 RLoginの設定を変更後、接続してみましたが切断時には何も表示されず、画面中央に「Closed」と表示されるのみでした。
guest

回答3

0

ベストアンサー

類似事例がありました。
https://savannah.gnu.org/maintenance/SshAccess/
https://qastack.jp/ubuntu/344863/ssh-new-connection-begins-to-hang-not-reject-or-terminate-after-a-day-or-so-on

超簡単に要約すると IPv4 SSH を行った場合、ルーターがブロックしてしまうのが原因のようです。
解決方法については次のようなものが見つかりました。

  1. 無線ルーターを変える
    ※Redhatのフォーラムでルーターを変えて解決したというコメントがありました。

  2. 無線ルーターで QoS (EDCA) を有効化する(無効だと再現するが有効化すると回避できる)
    ご参考)https://rabbit-note.com/2018/02/01/openssh-qos/

  3. ssh のオプションで -o IPQoS=0 を使用する(OpenSSHの場合)
    ※WinodowsでOpenSSH (ssh.exe) を使う、または WSL で ssh を使えば可能かもしれません。

  4. nc コマンドで 接続する(OpenSSH、かつ nc が使える環境の場合)
    ※WSL 環境なら可能だと思います。

投稿2020/04/21 06:44

編集2020/04/21 06:48
take88

総合スコア1455

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

betchi_0727

2020/04/21 23:35

回答ありがとうございます。返信遅くなりすみません。 提示していただいた解決法を踏まえ、ルーターの設定を見直したところ、ブリッジモードの設定がうまくいっていないことがわかりました。おそらくそのせいでIPがはじかれていたのではと思います。 ブリッジモードの再設定を行い、接続可能なことを確認しました。 しかしなぜRaspberryPiZeroのIPv4のみがはじかれていたのかは不明です。 とりあえずこの状況で運用を続けてみたいと思います。
guest

0

名前を変えたユーザーだけというのがよくわかりませんが...
時間帯に影響されるということなので、ネットワークの状況の変化等の関係もあったりするのでしょうか。

・ユーザー名とパスワードを入力した後進まなくなる

これに関しては、ssh -vvv user@192.168.10.10 の ようにデバッグログを出力しながら接続すると どの部分で、止まっているかで原因を判断できる可能性がありそうです。


1件分だけのログを見た感じでは、

失敗するのが

Apr 21 11:34:19 HostName sshd[478]: Accepted password for UserName from "接続したPCのIPv4" port 64829 ssh2

成功するのが

Apr 21 11:36:00 HostName sshd[519]: Accepted password for UserName from "接続したPCのIPv6" port 65043 ssh2

であれば、 IPv4 で接続した場合に失敗しているようにみえます。

確認とですが、 RaspberryPi にホスト名ではなく IPv6 の IPアドレスを指定して接続すると接続できて通常通り使えますか?

遅延したりしますか?

以下、自分ならこのあたりをまず確認してみるかと思いついた内容を記載すると...

ログインパスワード後に反応が悪くなるということから

ssh 設定で 接続IPアドレスの DNS の逆引きが設定されているが DNS に接続できなくて、DNS のタイムアウトを待っているから反応が遅いということは無いでしょうか。

具体的には、sshd の設定( /etc/ssh/sshd_config )に UseDNS yes が設定されているのであれば no にすると状況は変わりますか?

/etc/resolv.conf の nameserver に 存在しない IP アドレスが設定されていたりしていませんか?

他には... 接続IPアドレスで、条件を判断するような設定をしていたりする箇所はないでしょうか?

すぐに思いつくのは

tcpwrapper の /etc/hosts.allow や /etc/hosts.deny
pam の /etc/security/access.conf

あたりの設定で判断をしている等...

投稿2020/04/21 03:43

CHERRY

総合スコア25216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

betchi_0727

2020/04/21 06:04 編集

詳しい回答ありがとうございます。ご指摘いただいた点について追記です。 ・IPv6での接続:可能 ・UseDNSの項目:「UseDNS no」がコメントアウト状態だったので、「#」を外して再起動しましたが状況は変化なし ・resolv.conf:PCで調べたDNSサーバーとの一致を確認 ・hosts.allow、hosts.deny、access.confのファイル:初期状態からいじっておらず、すべてコメントアウト状態 となっています。デバックログについては追記しました。
guest

0

解決に至っているのかわかりませんが、一応つながるようにはなったので記載しておきます。

具体的には、ルーターの設定が悪かったようです。
ブリッジモードの設定を見直したところ、うまく接続できることを確認しました。

しかしなぜRaspberryPiZeroのIPv4のみがはじかれたのか・・・
依然として不明ですが、とりあえずこの状態で運用を続けてみたいと思います。

回答していただいた方ありがとうございました。

投稿2020/04/21 23:39

betchi_0727

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問