RasberryPi と遊ぼう〜ssh編〜

RasberryPiとssh接続を確立する

前回、個人的にひっそりと詰んだステップです。


ssh接続を有効化する

raspi-configコマンドを実行します。

raspi-config

「3 Interface Options」を選択します。
「I1 SSH」を選択します。
sshを有効にする場合は「はい」を選択します。
「Finish」を選択し、変更を適用するために再起動するよう促されたら「はい」を選択します。

sshの状態を確認します。

systemctl status サービス名

実行結果

$ systemctl status ssh ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled) Active: active (running) since Sat 2025-09-06 21:15:21 JST; 24min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 2125 (sshd) Tasks: 1 (limit: 9572) CPU: 182ms CGroup: /system.slice/ssh.service └─2125 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups" 9月 06 21:15:21 takuyanPi systemd[1]: Started ssh.service - OpenBSD Secure She> 9月 06 21:18:18 takuyanPi sshd[2186]: Accepted password for takuyan from 240b:>

sshがactiveであることが確認できました。

mac から RasberryPi へssh接続を試みます。

$ ssh takuyanPi.local The authenticity of host 'takuyanpi.local (IPアドレス IPv6)' can't be established. ED25519 key fingerprint is SHA256:公開鍵. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'takuyanpi.local' (EDxxxxx) to the list of known hosts. takuyan@takuyanpi.local's password: Linux takuyanPi 6.12.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue May 13 09:17:58 2025 $ exit ログアウト

ssh接続が成功することが確認できました。 再インストール前は、ssh接続の確率まではできたのですが、認証直前で強制切断されてしまい、どう足掻いても解決できませんでした。
いろんなサービスを全てChatGPTのいう通りに、ほぼ脳死状態でインストール、設定変更していったので、その過程で何か問題が生じたんでしょう。
生成AIに主導権を握らせるのではなく翻訳機程度に捉えていた方がいいのかな、と改めて感じました。


設定変更

設定変更して少しセキュリティを強化します。
nanoエディターで /etc/ssh/sshd_config ファイルを変更します。

sudo nano /etc/ssh/sshd_config

管理者権限での接続を拒否します。

PermitRootLogin no

configファイルを書き換えたらsshdを再起動します。

sudo systemctl restart ssh

systemctr でステータスを確認しつつ、念の為 mac 側から再度 ssh 接続をやり直して、正しく接続できることを確認できました。


scpコマンドでファイル転送を行う

sshが有効化できたらscpコマンドも使用することができます。
mac側からscpコマンドを試してみます。

scp ./*.sql ユーザー名@ホスト名.local:/home/ユーザー名/Documents/MySQL

パスワードを求められるので入力します。

create_database.sql 100% 123 25.2KB/s 00:00 create_table.sql 100% 5815 395.3KB/s 00:00 create_user.sql 100% 135 28.0KB/s 00:00

終了しました。
RasberryPi側でもlsコマンドで確認します。

$ ls -la 合計 24 drwxr-xr-x 2 takuyan takuyan 4096 9月 7 18:25 . drwxr-xr-x 3 takuyan takuyan 4096 9月 7 18:18 .. -rw-r--r-- 1 takuyan takuyan 123 9月 7 18:25 create_database.sql -rw-r--r-- 1 takuyan takuyan 5815 9月 7 18:25 create_table.sql -rw-r--r-- 1 takuyan takuyan 135 9月 7 18:25 create_user.sql

正しく転送できていることを確認できました。
試してはいないですが、逆も可です。


おまけ

ssh 接続する際にいくつかオプションが指定できます。

ssh -4 -vvv ユーザー名@ホスト名

-4:IPv4で接続しにいきます。
-vvv:デバッグモード。接続の過程をフルダンプします。


ssh周りはいったんこれでおしまい。あとで設定変更を試みることがあれば追記していきます。
以上、昨日半日はいったいなんだったんだ、、、というくらいあっさり終了。
次回はFireWallのインストール等をセキュリティ強化を行なっていきます。

参考サイト

raspi-configを使ったCUI(CLI)からのSSHの有効化

コメント

このブログの人気の投稿

【python】PySide6 におけるウィンドウとかダイアログボックス内のアイテムの自動調整

脆弱性評価システムを作る〜CVSSとは〜

dict型オブジェクトを内包するlistオブジェクトのコピー