0
0

More than 3 years have passed since last update.

Raspberry Pi ① 初期設定 --Mac編--

Last updated at Posted at 2021-01-20

前提条件

  • ラズパイにOSをインストール済であること
  • ディスプレイ必要です

目的

  • 自身のmacからSSHでラズパイに接続する
  • その際に公開鍵認証でアクセスする

環境

  • macOS: Catalina 10.15.7
  • raspbian: 10.7

目次

  1. user名変更
  2. 公開鍵の作成
  3. 公開鍵認証の設定
  4. IP固定&ポート変更
  5. おまけ

内容

1. user名変更

  • ラズパイの初期情報
    • user:pi
    • password:raspberry

 このまま使用すると誰でも簡単にSSH接続できてしまうし、
 その他にも問題多数なのでまずはユーザー情報を変更する。
 やり方はいつかあるがここでは、ユーザー名とパスワードを変更するやり方で行う。
 直接変更できれば良いのだが、ログインしているユーザーの情報を直接変更することができないため
 一度別ユーザーを作成し、そちらでログイン後、変更していく。

ユーザーの変更

 # '仮のユーザ(tmp)を作成する'
 sudo useradd -M tmp
 # 'tmpユーザをsudoグループに追加(そうしないとsudoが使えない)'
 sudo gpasswd -a tmp sudo
 # 'tmpユーザのパスワードを設定'
 sudo passwd tmp
 # 'ログアウトする'
 exit

 アカウントの作成が終わったら、SSH接続に必要なのでIPアドレスを確認する。

IPアドレスの確認

 # 'ifconfigで情報を表示'
 ifconfig
 # '複数行出てくるが下記のような表示を探し、inetのところがIPアドレスなのでメモしておく'
 wlan0: flags=1111<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1111
        inet 111.111.11.1  netmask 255.255.255.0  broadcast 111.111.11.255
        inet6 fe11::1aa:1a4a:a1a1:1aa1  prefixlen 64  scopeid 0x20<link>

 ここまで確認したら、画面の表示をCLIに変更します。
 デスクトップのままだと、どこかでPiユーザーを使用しているらしく名前の変更ができません。
 設定方法は、左上のラズパイのロゴから
 「RaspberryPiの設定」 -> 「システムタブ選択(最初に選択されてる)」
  -> 「boot(ブート)のをCLIに変更」 -> 「現在のユーザーでログインするからチェックを外す」
   -> 「インターフェース(interface)タブ選択」 -> 「SSHのところを有効にする」

 ここまで完了したらラズパイを再起動します。
 再起動後、macの方からSSHで接続。

SSH接続コマンド

 # 'ssh [先ほど作成したユーザー名]@[ラスパイのIPアドレス] -p 22'
 ssh tmp@111.111.11.1 -p 22

 接続ができたら、Piユーザーの情報を変更します。
 rootユーザーにもパスワードを設定しておきましょう。
 (rootユーザーは元々存在し、名前変更不可のため後ほどSSHログインできないようにします)

ユーザー名変更

 # 'usermod -lでユーザ名をpiからnewpiに変更'
 sudo usermod -l newpi pi
 # 'usermod -dでホームディレクトリを/home/piから/home/newpiに変更'
 sudo usermod -d /home/newpi -m newpi
 # 'groupmod -nでpiグループをnewpiグループに変更'
 sudo groupmod -n newpi pi
 # 'rootユーザーのパスワード変更'
 sudo passwd root
 # 再起動
 reboot

 これで変更完了。
 再起動と同時に、SSH接続が切れるので変更したユーザーでSSH接続を試みる。
 再接続できたら、tmpユーザーは不要なので削除する。

SSH再接続&tmpユーザーの削除

 ssh newpi@111.111.11.1 -p 22
 # '仮ユーザを削除(警告的なのが出るが、構わず削除)'
 sudo userdel tmp
 # 'newpiユーザのパスワードを変更(必要であれば)'
 sudo passwd newpi

2. 公開鍵の作成

 まずはmac側のHOMEディレクトリ配下に.sshというディレクトリを作る。
 その後、そのディレクトリ内に鍵を作成。

鍵の作成

 # 'mac側のホームディレクトリ配下に、.sshディレクトリの作成'
 mkdir ~/.ssh
 # '.sshディレクトリに移動'
 cd ~/.ssh
 # '鍵の作成'
 ssh-keygen -t rsa

 鍵の作成のコマンドを打つと下記の3つを順番に聞かれる。
  ・ 鍵ファイルを保存するフォルダの名前
  ・ パスフレーズ
  ・ パスフレーズ(確認用)

 全てエンターでも良いが、パスフレーズは入力しておくほうがベター。
 作成後、~/.sshの中に次のような2つのファイルが作成されている。

鍵の種類

 # '秘密鍵'
  id_rsa
 # '公開鍵'
  id_rsa.pub

3. 公開鍵認証の設定

 ラズパイ側に鍵を格納するディレクトリを作成。


 # 'ラズパイ側のホームディレクトに、.sshディレクトリ作成'
 mkdir ~/.ssh

 作成後、公開鍵をmacからラズパイに送ります。

鍵の送信

 # 'mac側の.sshディレクトリ内に移動'
 cd ~/.ssh
 # 'scp -r id_rsa.pub [ユーザー名]@[ラズパイのIPアドレス:/home/[ユーザー名]/.ssh]'
 scp -r id_rsa.pub newpi@111.111.11.1:/home/newpi/.ssh

 これで公開鍵の送信は完了です。
 次に、ラズパイ側で受け取った鍵の情報を書き出し、鍵のパーミッションの変更をしていきます。

パーミッションの変更

 # 'ラズパイ側の.sshディレクトリに移動'
 cd ~/.ssh/
 # '公開鍵の情報を使用する用に書き出す'
 cat id_rsa.pub >> authorizedkeys
 # 'authorized_keysのパーミッションを600に変更'
 chmod 600 authorized_keys
 # '.sshフォルダのパーミッションを700に変更(うまくいかなければsudoをつける)'
 chmod 700 ~/.ssh
 # '公開鍵ファイルを削除'
 rm ~/.ssh/id_rsa.pub

 これで基本的な設定は完了。接続できるかテスト・


 # 'mac側の.sshディレクトリに移動'
 cd ~/.ssh
 # 'ssh [ユーザー名]@[ラズパイのIP] -i [秘密鍵] -p 22'
 ssh newpi@111.111.11.1 -i id_rsa -p 22
 

 パスワードを要求されるので、公開鍵の生成の際に入力したパスワードを入力。
 ログインできたら完了です。

 せっかくSSHログインできるようにしたので、パスワードログイン不可にしましょう。
 ラズパイ側の設定ファイルを変更します。
 ついでなので他のもいじりますが必要に応じて変えてください。
 変更するのは下記3点
  ・ rootユーザーのログイン禁止
  ・ パスワード認証を無効化して公開鍵認証のみを許可
  ・ 空パスワードを無効

ssh関連の設定ファイルの変更

 # 'vimで設定ファイルを開く(vim意外で開きたい方はviの部分変えてください)'
 sudo vi /etc/ssh/sshd_config
 # 'rootユーザーのログイン禁止'
 # '#PermitRootLogin prohibit-password」を「PermitRootLogin no」に変更'
 PermitRootLogin no
 # 'パスワード認証を無効化して公開鍵認証のみを許可'
 # '「#PasswordAuthentication」を「PasswordAuthentication no」に変更'
 PasswordAuthentication no
 # '空パスワードを無効'
 # '「#PermitEmptyPasswords no」を「PermitEmptyPasswords no」に変更'
 PermitEmptyPasswords no:wq


 この設定ファイルにはいろんな情報が書いてあるので、探すの大変かと思うので
 vimの場合コマンドモードで、 /[検索したい文字]
 とすると検索できるので便利。

 ここまで終わったら再度SSH接続を試みて成功すれば完了。

4. IP固定&ポート変更

 
 IPアドレスは、自インターネット内で自動で振り分けられるため
 変更する可能性があるので、IPを毎回固定になるような設定をする。

IP固定

 # 'IPの設定は/etc/dhcpcd.conf'
 sudo vi /etc/dhcpcd.conf
 # '下記設定を書き込む'
 interface wlan0
 static ip_address=192.168.11.111/24
 static routers=192.168.11.1
 static domain_name_servers=192.168.11.1
 # 'ラズパイ再起動'
 reboot

 ip_addressに好きなIPを設定。
 routersというのはデフォルトゲートウェイに当たります。
 上記はBuffaloのルーターでの設定です。
 Buffaloルーターをお使いの場合は、下2つは同じ値で大丈夫だと思います。
 再起動後、ip -a でwlan0のところのinetが192.168.11.111/24が表示されていれば成功。
 
 想定外のエラー
 自分の場合、この設定でうまくいかなかった。
 結果的にはラズパイ側のwifiの設定を変えたら成功した。
 やったことは下記。

wifiの設定変更

 # 'wifiの設定を普通に行うとパスワードが平文で入っているため変更'
 wpa_passphrase "Wi-FiのSSID" "パスフレーズ"
 # 'このように表示されるので全てコピー'
 network={
        ssid="Wi-FiのSSID"
        #psk="パスフレーズ"
        psk=xxxxxx
 }
 # 'wifiの設定ファイルは/etc/wpa_supplicant/wpa_supplicant.conf'
 sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
 # '先ほどのnetworkの設定をペーストし、#psk="パスフレーズ"の部分を削除して保存'
 network={
        ssid="Wi-FiのSSID"
        psk=xxxxxx
 }
 # 'ラズパイ再起動'
 reboot

 自分の場合はこれで解決できたので参考までに。

5. おまけ

 毎度毎度、sshの長々したコマンドを打つのは大分めんどくさいと思います。
 そんなときはエイリアスを登録すると良いです。
 まずはエイリアスを書くためのファイルを作りましょう。

configファイルの作成

 # 'touch [秘密鍵が保管されているディレクトリ]/config'
 touch ~/.ssh/config
 # 作成したファイルを開く
 vi ~/.ssh/config

 configファイルの中に情報を書き込みます。
 この際、Hostのところに記載する文字でSSH接続するので、覚えやすいものにすると良い。

configファイルの編集

 # 'フォーマット'
 Host [任意のホスト名]
    HostName [ラズパイのIP]
    User [ラズパイのユーザー名]
    port [変更していなければ22]
    IdentityFile [秘密鍵のパス]

 # '例'
 Host newpi
    HostName 111.111.11.1
    User newpi
    port 22
    IdentityFile ~/.ssh/id_rsa

 これでエイリアスの登録は完了です。
 早速、接続してみましょう。

エイリアスでSSH接続

 # 'ssh configで設定したHost名'
 ssh newpi

 これで毎回長々とコマンド打たなくて済みます!

続く。。。

 このラズパイはファイルサーバー化する予定なので続きを近日公開するかも??

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0