mokomichi go go

mokomichiからの報告です

VSCodeでSSHをやってみました

こんにちは。電子工作おじさんのmokomichiです。

ラズパイへのSSH接続が、VSCodeで簡単にできそうだったので忘れないようにメモしておきます。

VSCodeをインストールする

https://code.visualstudio.com/

configファイルを準備する

以前作った公開鍵の置いてあるフォルダにconfigファイルを作成します。
私の場合は/C:\Users***.sshです。

configの中身

Host mokomichi
    HostName 192.168.*.*
    User mokomichipi
    port 55555
    IdentityFile C:\Users\***\.ssh\id_rsa

Host:どんな名前でもOKです。
HostName:ラズパイのIPアドレスです。
User:ラズパイのユーザー名です。
port:ラズパイのポート番号です。
IdentityFile:秘密鍵が置いてある場所です。
「config」という名前にして保存します。拡張子は不要です。

Remote Developmentをインストールする

VSCode拡張機能にRemote Developmentがありますので、インストールします。
SSHに関係するものも勝手に入れてくれる?

接続してみる

VSCodeの左側にリモートエクスプローラーを選択する。

SSH TARGETSにconfigファイルのHostで書いた名前が表示されている。

Host名の右にあるConnect to Host in New Windowをクリック

新しくウインドウが開く。

Linuxを選択。

しばらく待機すると接続します。

以上、mokomichiのメモです。

ラズパイの初期設定

こんにちは。電子工作おじさんのmokomichiです。

ラズパイの初期設定を久しぶりにやりましたが、いろいろ面倒だったので忘れないようにメモしておきます。

SDカードを準備する

16GBにしました。

イメージをダウンロードする

いろいろあるみたいですが、以下ページからダウンロードしました。

https://www.raspberrypi.org/downloads/raspbian/

f:id:mokomichi70:20200504054142p:plain
Raspbianにします

f:id:mokomichi70:20200504054656p:plain
これにします。

SDをフォーマットする

以下ページのアプリでフォーマットします。

https://www.sdcard.org/downloads/formatter/

イメージをSDに書く

Win32 Disk ImagerがPCにありましたので、これで書き込みます。

Image File:先ほどダウンロードしたイメージファイル
Device:SDカード
Hash:None
Read Only Allocated Partitionsにはチェックを入れない
Writeを選択する

できあがったSDをラズパイに挿します。

rootのパスワードを設定

ラズパイを起動します。
「rootのパスワードどうしますか?」と聞いてきますので設定します。

wi-fiを設定

以下コマンドで設定します。

$ sudo sh -c 'wpa_passphrase "SSID" "パスワード" >> /etc/wpa_supplicant/wpa_supplicant.conf'    

パスワードが丸見えになっているので、/etc/wpa_supplicant/wpa_supplicant.confでコメントアウトされているパスワードは削除しておきます。

固定IPアドレスにしますので/etc/dhcpcp.confファイルに以下を追記します。

interface wlan0
static ip_address=192.168.*.*/24 #好きなように
static routers=192.168.*.* #デフォルトゲートウェイ
static domain_name_servers=192.168.*.*  #DNSサーバ

再起動後、無線で接続できるか確認します。

新しいユーザーを追加

はじめは「pi」ユーザーで操作していますが、いろいろと公開されているので、新しくユーザーを作り、「pi」ユーザーを削除しておきます。

新しくユーザーを追加します。
今回はmokomichiを追加するテイでいきます。

$ sudo adduser mokomichi    

「pi」と同じ権限を持たせたいので、現状の「pi」の権限を確認します。

$ groups pi    

同じ権限をmokomichiにも与えます。

$ sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio mokomichi    

確認します。

$ groups mokomichi    

「pi」ユーザー内のファイルをmokomichiにコピーします。

$ sudo cp -r /home/pi/* /home/mokomichi    

「pi」ユーザーがオートログインするのを無効にします。
/etc/lightdm/lightdm.confファイルを修正します。

#以下をコメントアウト
# autologin-user=pi  

オートログインを新しいmokomichiにします。
/etc/systemd/system/autologin@.serviceファイルを修正します。

#以下をコメントアウト
#ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
#以下を追加
ExecStart=-/sbin/agetty --autologin [mokomichi] --noclear %I $TERM

一度再起動し、mokomichiでログインできるか確認。

以下コマンドで「pi」でログインしていないことを確認。

$ who
mokomichi    tty1         
mokomichi   pts/0         

GUIで操作していたりすると「pi」が残ったりするのでCLIで操作するといいです。

「pi」ユーザーを削除

$ sudo userdel -r pi

以下で確認し、no such userと表示されればOKです。

$  id -a pi

SSHの設定(公開鍵認証)

SSHで操作する側のPCで鍵を作ります。

ssh-keygen -t rsa

鍵の保管場所やパスワードなどを聞いてきますが、エンター連打でOKです。
これで、id_rsaとid_rsa.pubの2つが生成されます。

公開鍵であるid_rsa.pubの方をラズパイにコピーします。
今回は/home/mokomichiにコピーします。

ここからはラズパイで設定します。
/home/mokomichiに.sshフォルダを作成します。

$ mkdir .ssh

公開鍵の情報をコピーします。

$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

公開鍵を削除しておきます。

$ rm id_rsa.pub

/etc/ssh/sshd_configファイルを修正します。

#22から変更する
$ Port 55555

#rootログインを禁止する
$ PermitRootLogin no

#公開鍵認証を有効にする
$ RSAAuthentication    yes
$ PubkeyAuthentication yes
$ AuthorizedKeysFile  %h/.ssh/authorized_keys

#パスワード認証を無効にする
$ PasswordAuthentication no

ラズパイを再起動する。

SSHでログインしてみる

操作する側のPCで確認します。

TeraTermを使用します。

新しい接続を以下設定で開始します。
TCP/IPにチェックを入れる
・ホストにラズパイのIPアドレスを入れる
・サービスはSSHにチェックを入れる
TCPポートに先ほどのPort番号を入れる

OKを押す。

セキュリティ警告が出ますが、「続行」を選択

SSH認証画面で以下を設定します。
・ユーザー名にラズパイのユーザー名を入れる
パスフレーズにラズパイのパスワードを入れる
・Authentication methodsのRSA・・・にチェックを入れ、生成した秘密鍵(id_rsa)を選択する

OKを押す。

接続できればOKです。

以上、mokomichiのメモです。