Raspberyy Pi で SSH
参照:https://qiita.com/tomokin966/items/bc22d09f97ebeb3955d2
試してみよう。
環境
ハード
- ディスプレイ、マウス、キーボードを繋いである Raspberry Pi 3 Model B+
- Windows10が入ったマシン
ネットワーク
- 同一ローカルネットワークに接続済み
SSHとは?
Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
Secure Shell - Wikipedia より引用
暗号化とか認証とかを使って安全にリモートコンピュータに接続する仕組み。
その名の通り、シェルのセキュアなやつ。
パスワードによるベーシック認証も使えるが、基本的には公開鍵暗号を使って鍵で接続することが多い。
一通り設定が済んだらベーシック認証を無効化しておくのが吉。
Raspberry PiでSSHの設定をする。
Windows 10からRaspberry PiにSSH接続してみる(公開鍵認証) - いろいろ試してみる
基本的にはここを参照する。
1. SSHディレクトリを作る
Raspberry Piで以下のコマンドを実行。
sudo mkdir /boot/ssh
フォルダは空でOK。
2. 「設定」→「Raspberry Piの設定」からSSHを有効に
最近のRaspbianはデフォルトだとオフになってるらしい。
3.「設定」→「Raspberry Piの設定」からパスワードを変更
パスワードを変更する。
デフォルトは以下の通り。
User | Password |
---|---|
pi | raspberry |
パスワード変更したら、一回再起動しとくsudo reboot
3. WinSCPから接続してみる
以下の情報を入力して接続してみる。
ホスト名:IPアドレスかホスト名
ポート番号:変更していれば入力(デフォルトは22)
ユーザー名:pi
パスワード:さっき変えたやつ
繋がったらベーシック認証は設定完了。
4. 鍵を使って接続できるようにする
OpenSSHをインストールする。(Gitをインストールしてればついてきてるはず)
Git Bashから以下のコマンドを実行。(pathを通していればコマンドプロンプトでも可)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
your_email@example.comは任意の値に変える。
(別にメールアドレスじゃなくてもいいけど、メールアドレスがベター)
保存先とかパスワードを求められるけど、何も入力せずEnter。
C:\Users\ユーザ名\.ssh
に「id_sra」(秘密鍵)と「id_rsa.pub」(公開鍵)が作られる。
WinSCPで「id_rsa.pub」(公開鍵)をRaspberry Piにアップロードする。
5. Raspberry Piに公開鍵を登録する
# ホームディレクトリへ移動
cd ~
# 公開鍵をRaspberry Pi側に登録
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
# 権限を設定
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
※権限の設定を間違うと接続できないので注意!
SSHの設定を変更するために設定ファイルを編集する。
編集前に設定ファイルの権限を一時的に変更する。
sudo chmod 777 /etc/ssh/sshd_config
これでWinSCPからでも編集できるようになる。
#PubkeyAuthentication yes
のコメントアウトを外す。#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
のコメントアウトを外す
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
を
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
って感じに変更する。
6. ベーシック認証を無効にする
#PasswordAuthentication yes
のコメントアウトを外し、no
に書きかえる。
#PasswordAuthentication yes
を
PasswordAuthentication no
って感じに変更する。
設定ファイルの編集が終わったらパーミッションを戻す。sudo chmod 644 /etc/ssh/sshd_config
7. パーミッションを確認する。
以下のディレクトリやファイルのパーミッションを確認しておく。
1つでも間違っていると接続できないので注意!
ディレクトリ | パーミッション |
---|---|
.ssh | 700 |
.ssh/authorized_keys | 600 |
/etc/ssh/sshd_config | 644 |
確認するのがめんどい場合は下のコマンドを流す。
cd
sudo chmod 700 .ssh
sudo chmod 600 .ssh/authorized_keys
sudo chmod 644 /etc/ssh/sshd_config
最後に再起動しておく。sudo reboot
参照第2弾https://584homes.com/it/raspberry-pi/raspberry-ssh1802.html%20=
パスワードログインはランダムで試すことで突破されることもあるので、公開鍵認証を行いました。
この設定を行うことでセキュリティの向上が期待できます。
公開鍵認証は秘密鍵を持つ人だけがログインできるようになる設定です。
2018/02/18 時点の Raspberry Pi 3 の環境で設定を行いました。
まず公開鍵と秘密鍵を作成します。
今回は Windows 環境で鍵を作成するため TeraTerm を使用しました。
Mac ユーザ等は ssh-keygen コマンドで生成できます。
公開鍵と秘密鍵の作成
- TeraTerm を起動して、[設定]-[SSH鍵生成] をクリック
- [鍵の種類] は “RSA” を選択して、[ビット数] は “2048” を入力
[生成] をクリック - 「鍵を生成しました。」と出力される
- [鍵のパスフレーズ]、[パスフレーズの確認] にパスワードを入力
[公開鍵の保存] と [秘密鍵の保存] をクリックして、それぞれの鍵を保存する
※鍵のパスフレーズ無しの場合は秘密鍵だけでログインします
この設定完了後に秘密鍵(id_rsa)を無くすとログインできなくなるため気をつけてください。
また、秘密鍵が第三者に漏洩すると、ラズパイにログインされてしまうので厳重に保管してください。
公開鍵を Raspberry Pi に保存
- ラズパイにログインする
- ホームディレクトリに .ssh ディレクトリを作成
cd
mkdir .ssh - .ssh のパーミッションを変更
chmod 700 .ssh
- .ssh ディレクトリの下に公開鍵ファイルを作成して開く
vi ~/.ssh/authorized_keys
- 保存した “id_rsa.pub” をテキストエディタで開いてコピーする
- コピーして文字列を ~/.ssh/authorized_keys にペーストして保存する
※ペーストする前に [i] を入力して入力モードにするのを忘れずに! - authorized_keys のパーミッションを変更
chmod 600 ~/.ssh/authorized_keys
SSH の設定変更
- sshd_config のバックアップ
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.yyyyMMdd
※yyyyMMdd は日付を入力
- sshd_config を開く
sudo vi /etc/ssh/sshd_config
- “#PasswordAuthentication yes” の下の行に “#PasswordAuthentication no” を追加して保存する
- SSH の再起動
sudo service ssh restart
これでパスワードログインが出来なくなり、秘密鍵を持っている人だけがログインできます。
おまけ:Teraterm のマクロを使って簡単ログイン
以下の内容を記載した “xxxx.ttl” ファイルを作成する
username = ‘ログインユーザ名’
hostname = ‘ログイン先のIPアドレス(例:192.168.0.1)’
keyfile = ‘ローカルに保存された秘密鍵のパス’
portnum = ‘ポート番号’msg = hostname
strconcat msg ‘:22 /ssh /auth=publickey /user=’
strconcat msg username
strconcat msg ‘ /keyfile=’
strconcat msg keyfile
connect msg
.ttl ファイルを “Tera Term Macro Interpreter(C:\Program Files\teraterm\ttpmacro.exe)” で起動するように設定
xxxx.ttl をダブルクリックするとログインできるようになります。
0 件のコメント:
コメントを投稿