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カードを準備する
- イメージをダウンロードする
- SDをフォーマットする
- イメージをSDに書く
- rootのパスワードを設定
- wi-fiを設定
- 新しいユーザーを追加
- 「pi」ユーザーを削除
- SSHの設定(公開鍵認証)
- SSHでログインしてみる
SDカードを準備する
16GBにしました。
イメージをダウンロードする
いろいろあるみたいですが、以下ページからダウンロードしました。
https://www.raspberrypi.org/downloads/raspbian/
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のメモです。