こんにちは,ちゆりです。
埃のかぶったラズパイの開発をようやく始めたわけで,毎日仕事終わりの開発が楽しみとなっております。
コーディングを行うのは僕の愛用のMacBookでAtomを使っているのですが(ラズパイで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設定ファイルの編集
ラズパイ側で
- port番号変更(0から65535番ポートでどれか(他で使っていない)を選択。28900とかでOKです。おそらく使っていないはず。)
- rootログインの禁止(yes or no)
- 鍵認証を有効化(yes or no)
- パスワード認証を無効化(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チカの次は温度監視なんか行ってみてはいかが??
[kanren postid="1322"]
コメント