モニター、キーボードなしでMacでなんとかする方法を教えてもらったので追記しました。
Raspberry Piにモニター、キーボードなしで接続することを「ヘッドレスモードで利用」すると言うようです。 Zeroconf (Mac OS XではBonjour、Linuxではavahi-daemon) により実現しているものです。
WindowsマシンとRaspberry Piを接続したいときは、次を参考にしてください。
しかし、Raspberry Piで最もよく利用されている最近のRaspbianでは、セキュリティを考慮してデフォルトではSSHサーバーが起動しないようになりました。
従って、SDメディアにRaspbianを書き込んでMacとRaspberry Piを有線LANケーブルでつないでもssh接続はできないのですが、次の手順を実施するとできるようになります。ちなみにRaspbian以外のOSでは多分、クライアントとRaspberry Piを直結するだけで接続可能です。
キーボードとモニターを用意できる場合
(0) Raspbianをダウンロード
(1) SDにRaspbianを書き込み
(3) Raspberry PiにSDメモリーを取り付ける
(4) モニター、キーボードを接続
(5) 電源を接続して起動
(6) ユーザーpi/パスワードraspberryでログイン
(7) SSHを有効化するために以下を実行
$ sudo touch /boot/ssh
キーボードとモニターを用意できない場合
(0) Raspbianをダウンロード
(1) SDにRaspbianを書き込み
$ touch /Volumes/boot/ssh
(4) Raspberry PiにSDメモリーを取り付ける
(5) 電源を接続して起動
起動後の設定(共通)
(1) LANケーブルでMacとRaspberry Piを接続
(2) RasPiの設定をする
$ sudo raspi-config
(3) 以下を実行
- Expand Filesystem
- Change User Passsword(推奨)
- reboot
sshコマンドでraspberrypi.local
に接続
% ssh pi@raspberrypi.local The authenticity of host 'raspberrypi.local (fe80::fbcb:b1c2:db6a:793a%en0)' can't be established. ECDSA key fingerprint is SHA256:XXX. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'raspberrypi.local,fe80::fbcb:b1c2:db6a:793a%en0' (ECDSA) to the list of known hosts. pi@raspberrypi.local's password: ←パスワードを入力(初期パスワードはraspberry) 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: Fri Nov 25 17:57:17 2016 SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $ (接続できた)
(5) ホスト名を変更
デフォルトのホスト名はraspberrypi.localなので別の名前に変えてみましょう。
$ sudo hostnamectl set-hostname raspberrypi1.local $ sudo nano /etc/hosts 127.0.1.1 raspberrypi1
(6) 変更を保存して閉じる
- 保存 [CTRL]+[O] → [Enter]
- 閉じる [CTRL]+[X]
(7) 再起動
% ssh pi@raspberrypi1.local
このあとの作業
とはいえ、このままではどちらにしろ外のネットワークと接続できないので、パッケージのインストールとかアップデートができません。なので、既存のネットワークにRaspberry Piを接続してIPアドレスを設定します。IPアドレスの固定化の方法は以下の手順を参考に。
有線LANの方にIPアドレスを割り当てるもよし、Wi-Fiの設定をするもよし。ちなみにRaspberry Pi 3のWi-Fiは2.4GHz帯の方にしか接続できないので注意。
なお、有線及び無線LANネットワークから切断して、クライアントとRaspberry Piを直結するとIPアドレスを設定していても引き続きドメイン名.local
でSSHアクセスできます。
Linux(CentOS 7)と直結したRaspbianに接続する方法
WindowsやMacはIPv4 Allの働きにより、任意のネットワークに接続されていないと適当なアドレスを振る仕様になっているため、LANケーブルで直結するとアクセスできます。しかし、LinuxではデフォルトではIPv4 Allが働きません。
以下の手順でそれぞれのサーバーで適当なネットワークIPアドレスを割り振った上でLANケーブルで直結するとサーバーにSSH接続できるようになるようです。
(0) 一旦、それぞれのサーバーを直結するのをやめて、インターネットに接続するように設定を変える
(1) クライアントとしてCentOS7(おそらくFedoraも)を使う場合、NetworkManagerからnetworkサービスに切り替える
(2) avahi-autoipdパッケージをクライアント、サーバーにそれぞれインストール
(3) avahi-dnsconfdとavahi-toolsパッケージをクライアントにインストール
(4) avahi-dnsconfdサービスを起動する
# systemctl enable avahi-dnsconfd && systemctl enable avahi-dnsconfd
(5) クライアントの/etc/nsswitch.confのhostsの設定に[NOTFOUND=return]の手前にmdns4を記述する
# nano /etc/nsswitch.conf ... hosts: files mdns4 [NOTFOUND=return] dns ...
(6) クライアント、サーバーでavahi-autoipd <NIC-Device> -Dを実行してアドレスを確保 <NIC-Device>にはランダムなIPアドレスを振るNICを指定する(ex. em1,eth0,eno1…)
(7) クライアントで以下のように実行して、ノードが見えることを確認
# avahi-resolve -4 --name raspberrypi1.local
(8) ping raspberrypi1.local
で応答が返ってくることを確認
(9) ssh pi@raspberrypi1.local
で接続
参考にした情報