2021/03/3

MacからRaspberrypiに接続するためには?|SSHの主な認証方式についても詳しく解説!

 
  

Raspberry piとは?


Raspberry piとはシングルボードコンピュータの製品名であり、手のひらサイズの基盤に、CPUと周辺部品、入出力インタフェースとコネクタを付けた極めて簡素なコンピュータです。

シングルボードコンピュータは、安価、低性能、低消費電力があげられ、その低消費電力性能から近年ではIot分野での注目が高まっています。

Raspberry piの特徴

Rasberry piは、CPUにスマートフォンにも広く普及しているARMアーキテクチャ仕様のものが用いられており、汎用性が高く入門者でも扱いやすいシングルボードコンピュータです。

使用できるOSも公式のRaspbian、UbuntuやGentooなどのLinuxディストリビューション、Windows 10 IoTなどがあり多様です。

SSHとは?

SSHとはSecure Shellの略称であり、リモートから安全にサーバにアクセスするための手順や規格のことです。

情報を送り出す端末の選定、データの形式、パケットの構成、エラー対処の方法などが取り決められています。これらの取り決めのことは一般的にプロトコル(約束ごと)と呼ばれます。

SSHの特徴

SSH以外のリモート接続方式としてはTelnetなどが存在します。Telnetでリモート接続を行う場合は、通信内容は暗号化されず、そのままのデータでインターネットを流れることになります。

一方、SSHではパスワードを含む全ての通信内容は暗号化されるので、通信途中での盗聴やデータの改ざんを防ぐことができます。

なぜSSHが必要か?

SSHにより、サーバを管理、操作をする人のみが、サーバにインターネット経由で接続できるようになります。

もし、悪意ある第三者がサーバに簡単に接続できてしまうとサーバ内にウイルスを仕込まれたり、サーバを他のシステムへの攻撃の踏み台にされてしまうことになる可能性があります。

安全性を担保するためにもSSHは複雑に作られているので、入門者は難しいと感じるかもしれません。ここではSSHの仕組みについて簡単に説明します。

パスワード認証方式と公開鍵認証方式

SSHにはサーバへのログインが適切であるかどうかを判断する認証方法が複数あります。

認証方式の中でももっとも代表的なものが、パスワード認証方式と公開鍵認証方式です。

パスワード認証方式と公開鍵認証方式は目的や用途に合わせて使われます。Raspberry piで利用する時にはその仕組みについて理解しておきましょう。

パスワード認証方式

パスワード認証方式とは、認証時にパスワードそのものをサーバに送信して認証を得る方式のことです。

SSHではこの認証フェーズにおいて通信はすでに暗号で保護されているので、第三者に情報が盗聴されることはありません。

しかし、パスワードを送信したサーバそのものに悪意があり、かつ送信したパスワードを別のところでも使い回していた場合、セキュリティ的に非常に危険な状態となります。

公開鍵認証方式

公開鍵認証方式とは、簡単に説明すると「鍵を持った人(パソコン)のみ、一般ユーザによるログインを許可する」認証方式のことです。

公開鍵認証方式には、「鍵交換」「電子署名」、さらに「共通鍵」を使ったハイブリッド暗号技術が用いられています。中でも、電子署名の鍵は、2種類存在し、公開鍵・秘密鍵と呼ばれています。

電子署名

公開鍵認証方式で前提となるのが、本人しか持ち得ないものの情報を以って本人の証とすることです。

これは、日常生活において自分自身の身分証明書を提示して、相手がそれを相手側の情報と照らし合わせて、本人確認するといった流れと似ています。

電子署名はこの証明書が間違いなくその当人のものであるものとするために必要になります。

公開鍵

公開鍵とは、基本的にサーバ側から公開されている鍵のことで、署名検証者がユーザの認証をする時に利用するための鍵です。

この公開鍵は、秘密鍵と対になっており、秘密鍵の所有者しか正しい電子署名を作れないことを利用し、署名が正しいことを公開鍵で検証します。公開鍵の暗号にはRSA暗号方式、DSA署名方式、およびECDAS署名方式の3種類が用いられます。

秘密鍵

秘密鍵とは、秘密鍵は、その所有者(署名者)によって秘密を保って管理される鍵であり、公開鍵とは対となっています。

電子署名を活用するためには、公開鍵が確かにユーザの所有する秘密鍵と対になるということが正しく認知されている状態で、ユーザが対になっている秘密鍵を、確かに所有していることを示すということが前提となります。

安全性の担保

秘密鍵、公開鍵により認証が行われますが、安全性を担保するために、認証前の鍵交換において、その手続きによって共有されるセッションIDを使用します。

鍵交換の方式にはDHやECDHといったものがあり、第三者による推測が困難な状態で情報の交換を行います。

鍵交換時のセッションIDを署名データに入れておくことで、認証のために生成しておいた署名が流用されることを防ぎます。

MacからRaspberry pi に SSH接続する方法

ここからは、MacからRaspberry piの中に立ち上げたサーバにSSH接続する方法を説明します。

今回使用するRaspberry piの仕様と接続に使用したコンピュータのOSを以下に記載します。

Raspberry piの仕様
・Raspberry pi Model4 B
・Raspbian GNU/Linux 10

接続に使用してコンピュータのOS
・macOS Catlaina virtion 10.15.7

バージョンを確認する

まずは、Raspberry piのOSのバージョンの確認と、Raspberry piのモデルの確認を行います。

OSのバージョンとモデルの確認は以下のコマンドで調べることができます。
OSの確認:$ lsb_release -a
モデルの確認:$ cat /procc/cpuinfo | grep Revision

Raspberry piのsshを有効化する。

Raspberry piのSSHはデフォルトで無効化されているので、有効化する必要があります。

Raspberry piのターミナルで$ sudo raspi-configと入力し、””3 Interface Options””から、P2 SSHを選択します。

もしくは、メニュー>設定>Raspberry pi>インタフェースからSSHにチェックを入れてOKを押します。

これでSSH接続の設定は完了です。Raspberry piを再起動させます。

MacからSSH接続する

システム環境設定>ターミナルとし、Macのターミナルを起動させます。

起動したら$ ssh Raspberry piのユーザ名@xx.xx.xx.xxのコマンドを入力します。ここでxx.xx.xx.xxはRaspberry piのIPアドレスのことです。

この後Raspberry piにログインする時のパスワードを入力すれば接続が完了します。

接続できない時

接続できなかった場合は、SSHが有効になっていない可能性やIPアドレスが間違っている可能性が考えられます。

SSHが有効になってない場合は、再度設定を行い、Raspberry piを再起動してください。

またIPアドレスが間違っている場合はRaspberry pi側のターミナルで$ ifconfigとして、IPアドレスを調べます。IPアドレスは有線接続しているか無線接続をしているかによっても異なります。

認証方式を公開鍵認証方式にする

Raspberry piの認証方式はデフォルトではパスワード認証方式となっていますが、ここからは認証方式を公開鍵認証方式にする方法について説明します。

公開鍵認証方式にするメリットはパスワードを入力する手間が省けることです。しかし、複数のパソコンからサーバにログインしたい場合は、各パソコンで公開鍵認証方式の設定が必要になります。

Macで鍵の作成を行う

Macのターミナルに$ ssh-keygen -t rsaと入力し、鍵の作成を行います。

この時、保存ファイル名を聞かれるので、あらかじめ保存するファイルを作成しておき、フルパスで指定して保存を行います。

この時、RasPiとRasPi.pubの2つのファイルが作成されます。RasPiが秘密鍵、RasPi.pubが公開鍵です。

公開鍵RasPi.pubをRaspberry piに転送する

Macのターミナルに$ scp [公開鍵へのパス] [Raspberry piのユーザ名]@raspberrypi.local:と入力します。これで、Raspberry piの/home/pi ディレクトリに公開鍵が転送されます。

次に、Raspberry pi側のターミナルに$ mkdir .sshで/.sshディレクトリを作成し、その中に公開鍵Raspi.pubを移動させます。

設定を完了させる

$ mv Raspi.pub .ssh/authorized_keysとしてファイル名を変更し、$ chomd 600 .ssh/authorized_keysとしてパーミッションを変更します。

次に、/etc/ssh/sshd_configの#PubkeyAuthentications yesのコメントアウトを外します。

これで、公開鍵認証方法の設定は完了です。

SSH接続する

$ sudo /etc/inti.d/ssh restartでSSHサーバを再起動し、Mac側のターミナルで、$ ssh -i [秘密鍵へのパス] [ユーザ名]@raspberrypi.localとしてSSH接続しましょう。

これで、パスワードの入力を必要とせず、Raspberry piに接続できます。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】