メインコンテンツまでスキップ

「Mac」タグの記事が2件件あります

全てのタグを見る

· 約3分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

自分用の構築メモです。

VirtualBox の設定

  1. ホストネットワークマネージャーを作成する
    Untitled.png

  2. 仮想マシンを作成する際にNICをNATホストオンリーアダプターの2つ設定する
    Untitled (1).png Untitled (2).png

  3. Ubuntu Server 20.04をインストール
    インストールが始まったら、NICを2つとも切断するとUpdateが失敗するのでインストールが早く終る

Ubuntuの設定

  1. SSHの設定
Ubuntu
sudo sed -i 's/#PubkeyAuthentication/PubkeyAuthentication/g' /etc/ssh/sshd_config
sudo sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/g' /etc/ssh/sshd_config
sudo systemctl restart sshd.service

ssh-keygen -t rsa -b 4096 -C "moritalous"
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. Dockerインストール
Ubuntu
curl -fsSL https://get.docker.com -o get-docker.sh && \
sudo sh ./get-docker.sh && \
sudo usermod -aG docker $USER
  1. VirtualBoxゲストツールインストール
Ubuntu
sudo apt update && \
sudo apt install -y virtualbox-guest-dkms virtualbox-guest-utils && \
sudo usermod -aG vboxsf $USER

## macと同じパスで共有するため
sudo mkdir -p /Users/Shared/VBox

スクリーンショット 2021-10-10 21.38.21 (1).png

macの設定

  1. 鍵でSSHログインする設定
~/.ssh/config
Host Ubuntu-VirtualBox-Docker
HostName xxx.xxx.xxx.xxx
User ubuntu
IdentityFile ~/.ssh/xxxxxxxxxx/id_rsa
  1. Docker Clientをインストール
mac
curl https://download.docker.com/mac/static/stable/x86_64/docker-20.10.9.tgz -o docker-20.10.9.tgz
tar xzvf docker-20.10.9.tgz
sudo xattr -rc docker
mkdir ~/bin
cp -rf docker/* ~/bin/
echo 'export PATH=$PATH:~/bin' >> ~/.zshrc

docker context create vbox --docker "host=ssh://ubuntu@Ubuntu-VirtualBox-Docker"
docker context use vbox

VSCodeの.devcontainerの設定

  • workspaceFolderを追加
  • workspaceMountを追加
  • mountsを追加
  • remoteUserを削除(rootで動くようにする)
.devcontainer
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.1/containers/ubuntu
{
"name": "Ubuntu",
"runArgs": ["--init"],
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick an Ubuntu version: hirsute, focal, bionic
// Use hirsute or bionic on local arm64/Apple Silicon.
"args": { "VARIANT": "focal" }
},
// ここから追加
"workspaceFolder": "/workspace",
"workspaceMount": "source=workspace,target=/workspace,type=volume",

"mounts": [
"source=/Users/Shared/VBox,target=/workspace/VBox,type=bind,consistency=cached"
],
// ここまで追加
// Set *default* container specific settings.json values on container create.
"settings": {},


// Add the IDs of extensions you want installed when the container is created.
// "extensions": [],
"extensions": []

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
// rootユーザーで動かす
// "remoteUser": "vscode"
// rootユーザーで動かす
}

VirtualBoxの起動(コマンドラインでヘッドレス)

mac
VBoxManage startvm Ubuntu20.04-docker --type headless

· 約3分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

やってみると意外と簡単。 パスワード入力が不要になるので、やって見る価値はあるかと。

SSHされる側(ホスト側のRaspberry Pi)での設定

SSHサーバーの設定変更

デフォルトでは鍵認証が有効になっていないので、設定を変更します。

RaspberryPi
sudo sed -i 's/#PubkeyAuthentication/PubkeyAuthentication/g' /etc/ssh/sshd_config
sudo sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/g' /etc/ssh/sshd_config

sudo systemctl restart sshd.service

SSHで使用する鍵の作成

RaspberryPi
pi@raspberrypi4:~ $ ssh-keygen -t rsa -b 4096 -C "moritalous"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxx
The key's randomart image is:
+---[RSA 4096]----+
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxx|
+----[SHA256]-----+
pi@raspberrypi4:~ $

~/.ssh/にid_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されます。

公開鍵の方をauthorized_keysに登録します。

RaspberryPi
cat .ssh/id_rsa.pub >>  ~/.ssh/authorized_keys

SSHする側(クライアント側のmac/Windows)での設定

秘密鍵の配置と権限変更

ホスト側で作成したid_rsa(秘密鍵)を持ってきます。 私は~/.ssh/raspberrypi4/の配下(Windowsの場合は%USERPROFILE%\.ssh\raspberrypi4)に保存しました。

権限変更はmacの場合のみ。Windowsの場合は不要でした。

macのみ
chmod 600 ~/.ssh/raspberrypi4/id_rsa

設定ファイルの作成

macの場合もWindowsの場合も、IdentityFileの指定は同じです。Windowsだからといって%USERPROFILE%と書いたり、エスケープ文字が\(円)になったりしません。

~/.ssh/config
Host raspberrypi4.local
HostName raspberrypi4.local
User pi
IdentityFile ~/.ssh/raspberrypi4/id_rsa

Host raspberrypi3.local
HostName raspberrypi3.local
User pi
IdentityFile ~/.ssh/raspberrypi3/id_rsa

これで、パスワードなしでSSH接続できます。

mac/Windows
$ ssh [email protected]
Linux raspberrypi4 5.4.51-v8+ #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020 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.
You have new mail.
Last login: Sun Oct 18 16:26:01 2020 from 192.168.0.8

pi@raspberrypi4:~ $

VSCodeのSSH接続の拡張機能(Remote - SSH)を使った場合もパスワード無しで、接続されます。 わーい EC2の接続に必要な鍵もこうやって管理すればいいんですね。