ラズパイにMacからSSH接続してPythonスクリプトをデプロイ+実行する手順
ラズパイ用のスクリプトを開発するときに、Macの方でIDE使いたいし、ラズパイにキーボード・マウス・ディスプレイ繋ぐのめんどくさいので、SSHの設定をしたときのメモ
ラズパイ側設定
IPを固定
設定ファイルを開いて、ルータとラズパイのIPを設定
$ vi /etc/dhcpcd.conf
dhcpcd.conf
interface wlan0
static ip_address=192.168.2.107/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
※サブネットとルータのIPは自身のLANの環境に合わせて、適宜変更
SSHを有効化
/boot/ssh
というファイルを作って再起動
$ sudo touch /boot/ssh
※または、デスクトップ画面の上部メニュー→「設定」→「Raspberry Piの設定」を開き、インターフェースタブで SSH を「有効」に設定
Mac側設定
公開鍵ペアを生成し、配置
鍵ペア生成
$ ssh-keygen -t rsa
公開鍵をSCPでラズパイに送信
$ scp .ssh/id_rsa.pub pi@192.168.2.107:
SSHでラズパイに接続し、公開鍵の内容をauthorized_keys
に追加
$ ssh pi@192.168.2.107
$ mkdir .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
$ rm id_rsa.pub
公開鍵認証を許可するため、sshd_config
を開く
$ sudo vi /etc/ssh/sshd_config
下記6行を追加、またはすでにある場合変更
sshd_config
Port 25000
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
SSHDを再起動
$ sudo /etc/init.d/ssh restart
cmd + D
でMacに戻り、公開鍵認証によるSSH接続の確認
$ ssh -i .ssh/id_rsa -p 25000 pi@192.168.2.107
コマンドが長くてめんどくさいので、エイリアスを設定
$ vi .ssh/config
config
Host raspi
HostName 192.168.2.107
User pi
Port 25000
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
エイリアスでSSHできることを確認
$ ssh raspi
スクリプトのデプロイと実行
デプロイ(SCPで送るだけ)
$ scp develop/python_scripts/raspi_bot.py raspi:~/
実行(venv環境)
※ホームディレクトリにvenv環境を構築済み前提
$ ssh raspi
$ . venv/bin/activate
(venv)$ python develop/python_scripts/raspi_bot.py
ラズパイのシャットダウン
$ sudo shutdown -h now