#はじめに
RaspberryPiを購入したので自宅内でssh接続できる様に設定しました。
その際のメモです。
#接続側で鍵作成
$ ssh-keygen -t rsa #強度を検討する必要あり。
保存場所とかパスフレーズとかを訊かれるけれど、入力せずEnterで次に。
$ ls ~/.ssh/
id_rsa id_rsa.pub
な感じになっていればOKなはずです。
#公開鍵をラズパイに送信
作成した公開鍵をSCPを使って送信します。
$ scp ~/.ssh/id_rsa.pub pi@192.168.nnn.nnn:~
これでラズパイのpiユーザーのホームディレクトリに公開鍵ファイルが置かれます。
:
の後に~
なり任意のディレクトリなりを付与しておかないとエラーになります。
はまりました。
今までホームディレクトリに送るという処理をした事が無かったので、空白ならホームディレクトリになるのかと勘違いしていました…。
#ラズパイ側で公開鍵を設定
SCPした公開鍵が存在する事を確認してから次のコマンドで設定します。
$ cd ~
# 公開鍵の内容を追加。
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
# SCPした公開鍵を削除削除
$ rm id_rsa.pub
もし~/.ssh
がない場合は作成して権限を700
にしておきます。
#ラズパイ側でSSHの設定
/etc/ssh/sshd_config
を変更して各種設定を行います。
- port番号変更
- rootログインの禁止
- 鍵認証を有効化
- パスワード認証を無効化
# port番号設定
# 0〜65535の内で設定。
# 他で使われている番号もあるのでその辺りはよしなに。
Port nnnnn
# rootログインの禁止
PermitRootLogin no
# 鍵認証を有効化
PubkeyAuthentication yes
# パスワード認証を無効化
PasswordAuthentication no
その他、状況によって設定する項目は変わるので適切に設定する必要があります。
各々の意味は以下のページを参考にさせていただきました。
変更の後はsshサーバーを再起動して設定を反映します。
$ sudo /etc/init.d/ssh restart
有効になっているはず。
#接続の確認
$ ssh -i .ssh/[非公開鍵] -p [port番号] pi@nnn.nnn.nnn.nnn
接続できればOKです。
#接続の短縮
上記のsshコマンドだと結構コマンドが長くて面倒なので~/.ssh/config
を設定します。
Host raspi
HostName nnn.nnn.nnn.nnn
User pi
Port [ポート番号]
IdentityFile [非公開鍵のパス]
これで以下のコマンドで接続できます。
ssh raspi
#さいごに
普段は要件・設計・PGしかしておらず、こういう設定等はいつもやっていただいている人間なので、基本的に素人です。
その為、ツッコミどころとか間違っている部分とかが多数あると思いますので、ご教授いただけるとありがたいです。
ありがとうございました。