【Raspberry Pi】パスワード認証要らずの鍵認証SSH/SCP

raspberrypi-ssh/scp 鍵認証












こんにちは,ちゆりです。
埃のかぶったラズパイの開発をようやく始めたわけで,毎日仕事終わりの開発が楽しみとなっております。

コーディングを行うのは僕の愛用のMacBookAtomを使っているのですが(ラズパイでAtomを動かすには少々遅くて,ストレスとなるため…。),Macでコーディング→ソースをSCPでラズパイへ転送→デバッグの無限ループを繰り返しております。

そのため,SCPの出番が非常に多く,毎度毎度パスワードを入力して転送しています。

そこで,ふと,「毎回パスワード入力めんどくさくない??」と気付き,パスワード入力を回避するための鍵認証設定を行ったので,備忘録兼記事のネタとして皆さんに提供いたします。

ラズパイの鍵認証設定手順(Mac編)

早速ラズパイMacの合鍵を作っていきましょう。

認証鍵の作成

ssh-keygen -t rsa

この後にパスワードを聞いてきますが今回は,無視して構いません。(本当はパスワードを入れるほうが素晴らしいのですが,なくても問題なしです。)そのままエンターキーを2回でOK

こんな表示が出てきたら設定完了です

+---[RSA 2048]----+
|         .+=+.+. |
|       . ...o+...|
|      . *  .+. o |
|       = * +..o..|
|      o S    =.Xo|
|     . + o  + *.*|
|    .   + .+ oE .|
|     . + =    .  |
|      +.o .      |
+----[SHA256]-----+

おそらく/Users/<user名>/.ssh以下にid-rsaが生成されていると思います。
生成されて入れば,問題ないです。次に進みましょう。

公開鍵をラズパイへ転送

一旦,ラズパイへログインし,鍵の受け入れ準備をしましょう。

ssh pi@[ラズパイのIPアドレス]

ログインしたら鍵ファイルを置くディレクトリの作成を行い準備完了です。

mkdir /home/pi/.ssh

では,Macに戻り,以下の形式でコマンドを打っていきます。

scp [送信するファイル] [ユーザID]@[Raspberry PiのIPアドレス]:[転送する場所]

試しに僕の環境ではこのようになります。
(もちろんラズパイの電源はONで,IPの固定化を行ってくださいね。)

scp .ssh/id_rsa.pub pi@192.168.100.24:/home/pi/.ssh

ラズパイで公開鍵の設定

では,またまたラズパイへログインして公開鍵の設定を行っていきます。

ssh pi@[ラズパイのIPアドレス]

ログインしたら.sshディレクトリにて鍵の書き出しを行います。
次に権限の付与をしていきます。

cat id_rsa.pub >> authorized_keys
chmod 700 /home/pi/.ssh
chmod 600 /home/pi/.ssh/authorized_keys

はい,鍵の設定は完了です。かんたんですね。
そして,鍵の複製を行ったのでid_rsa.pubは用無しです。削除しても構いません。

ssh設定ファイルの編集

ラズパイ側で

  1. port番号変更(0から65535番ポートでどれか(他で使っていない)を選択。28900とかでOKです。おそらく使っていないはず。)
  2. rootログインの禁止(yes or no)
  3. 鍵認証を有効化(yes or no)
  4. パスワード認証を無効化(yes or no)

の4つをconfigファイルに反映させましょう。

sudo vi /etc/ssh/sshd_config 
:
#Portの設定(28900多分使っていないよね)
Port 28900

# rootログインの禁止
PermitRootLogin no

# 鍵認証を有効化
PubkeyAuthentication yes

# パスワード認証を無効化
PasswordAuthentication no

こんな感じで編集してもらえばバッチリです。
設定の反映に再読み込みしましょう。

sudo /etc/init.d/ssh restart

完了です。お疲れ様です。

ラズパイSSH接続確認(鍵認証)

ssh -i .ssh/id_rsa -p 28900 pi@[ラズパイのIP]

どうです?パスワードいらずでログインできましたか?

いちいちこんな長ったらしいコマンドを打つのもめんどくさいので,aliasにでも登録しておきましょう。

vi .bashrc
:
alias ssh_rasp='ssh -i .ssh/id_rsa -p 28900 pi@[ラズパイのIP]'

設定を再読み込み(反映)させれば,

ssh_rasp

のコマンドだけで簡単にログインできちゃいます。

ラズパイSCP転送確認(鍵認証)

SCPでファイル転送する場合も要領は同じです。

scp -i .ssh/id_rsa [転送したいファイル] pi@[ラズパイのIP]:[ラズパイの転送先/home/piとか]

~/.ssh/configに設定する方法もあるけど

SSHログインを行う際は,aliasに登録しなくても~/.ssh/configにssh設定を書く方法もあるのだが,いざ,使わなくなったときなどに消し忘れたりごちゃごちゃなるのが気になるので今回はaliasに書きました。(aliasは頻繁に触るので,不要なaliasとか消したりするのも早いですからね。)

…というめんどくさいことから逃げた言い訳です…。

でも,まぁ鍵認証でパスワード不要でログインできるんだからオッケー!!

最後に

今後もラズパイの開発をゴリゴリ行っていくので,「あ。これ便利だわ」というのを備忘録兼記事のネタとしてまとめていくつもりです。

そういえば最近はラズパイ用の温度計モジュールを購入したので,温度監視をしながら,ぼちぼち開発を進めていってます。

ラズパイで特にすることがない方はLチカの次は温度監視なんか行ってみてはいかが??

raspberrypi-temper

USB温度計『TEMPer』を使ってRaspberryPiで温度を測定する。

2019年9月18日

★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる












★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる

気に入ったらLet's Share!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

ちゆり

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。脱サラ田舎暮らしに憧れ,なんだかんだプログラミングが好き。口癖は仕事辞めたい。凡人にはなりたくない凡人。