rabbit-slide-kenhys-osc2021-online-nagoya-lt-20210529 2021.05.29.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.md +14 -0
- data/Rakefile +17 -0
- data/config.yaml +24 -0
- data/images/profile.png +0 -0
- data/osc2021-online-nagoya-lt.md +202 -0
- data/pdf/osc2021-online-nagoya-lt-20210529-osc2021-online-nagoya-lt.pdf +0 -0
- data/theme.rb +5 -0
- metadata +65 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 231b8842424f86c49f8d8214789115fda59b5ff0b17c24b2f84e1ebd3e379f21
|
4
|
+
data.tar.gz: 8c99cbf71c09f22f652f64da6afb9b5f604162c9a54f774f623c126e6390bd0c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 27e165e900ab3c1c3080b6e002abb882568c95d817bdd553f78edd35d0d0b67109237fd00ceaa2b555d8d2c57cedd81bbf5eecbf033131f551762682f6c34ba8
|
7
|
+
data.tar.gz: aeb6445026c6ee12610c3d5d3f51ac1cc9d00d931e45f7a182b43288e60a3025496639e52e1ef78c4c731f2eaf312b9dd72995367c740694e914237af32c79a8
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--size=1024,768 osc2021-online-nagoya-lt.md
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
spec = nil
|
6
|
+
Rabbit::Task::Slide.new do |task|
|
7
|
+
spec = task.spec
|
8
|
+
# spec.files += Dir.glob("doc/**/*.*")
|
9
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
10
|
+
# spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Tag #{spec.version}"
|
14
|
+
task :tag do
|
15
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
16
|
+
sh("git", "push", "--tags")
|
17
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
id: osc2021-online-nagoya-lt-20210529
|
3
|
+
base_name: osc2021-online-nagoya-lt
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- dropbear
|
7
|
+
presentation_date: 2021-05-29
|
8
|
+
presentation_start_time:
|
9
|
+
presentation_end_time:
|
10
|
+
slideshare_id:
|
11
|
+
version: 2021.05.29.1
|
12
|
+
licenses:
|
13
|
+
- CC-BY-SA-4.0
|
14
|
+
slideshare_id: kenhys
|
15
|
+
speaker_deck_id:
|
16
|
+
vimeo_id:
|
17
|
+
youtube_id:
|
18
|
+
author:
|
19
|
+
markup_language: :md
|
20
|
+
name: Kentaro Hayashi
|
21
|
+
email: kenhys@gmail.com
|
22
|
+
rubygems_user: kenhys
|
23
|
+
slideshare_user:
|
24
|
+
speaker_deck_user:
|
data/images/profile.png
ADDED
Binary file
|
@@ -0,0 +1,202 @@
|
|
1
|
+
# DebianでWOLとDropbearを組み合わせて起動する方法
|
2
|
+
|
3
|
+
subtitle
|
4
|
+
: 暗号化LVMだがパスフレーズ省略までは頑張らない
|
5
|
+
|
6
|
+
author
|
7
|
+
: Kentaro Hayashi
|
8
|
+
|
9
|
+
institution
|
10
|
+
: ClearCode Inc.
|
11
|
+
|
12
|
+
content-source
|
13
|
+
: OSC 2021 Online/Nagoya Lightning Talks
|
14
|
+
|
15
|
+
allotted-time
|
16
|
+
: 5m
|
17
|
+
|
18
|
+
theme
|
19
|
+
: .
|
20
|
+
|
21
|
+
# スライドは公開済みです
|
22
|
+
|
23
|
+
* DebianでWOLとDropbearを組み合わせて起動する方法
|
24
|
+
* <https://slide.rabbit-shocker.org/authors/kenhys/osc2021-online-nagoya-lt-20210529/>
|
25
|
+
|
26
|
+
# プロフィール
|
27
|
+
|
28
|
+
![](images/profile.png){:relative-height="60" align="right"}
|
29
|
+
|
30
|
+
* ひよこDebian Developer @kenhys
|
31
|
+
* トラックポイント(ソフトドーム派)
|
32
|
+
* わさビーフ(わさっち派)
|
33
|
+
|
34
|
+
# 本日の内容
|
35
|
+
|
36
|
+
* リモートから比較的簡単に\\nDebianマシン(Bullseye)を起動する事例紹介
|
37
|
+
{::comment}
|
38
|
+
まだリリースされていない
|
39
|
+
{:/comment}
|
40
|
+
|
41
|
+
# なぜリモートから起動したいか
|
42
|
+
|
43
|
+
* COVID-19前
|
44
|
+
* たまに在宅勤務するときは社内チャット(Zulip)で\\n電源を入れてもらうようお願いする\\nのどかな光景😊
|
45
|
+
* COVID-19後
|
46
|
+
* 在宅勤務のためオフィスにお願いできる人がいるとは限らない🤔
|
47
|
+
|
48
|
+
# 前提条件
|
49
|
+
|
50
|
+
* 社内ネットワークにSSH Gatewayを経由して入れる環境あり
|
51
|
+
* リモート起動したいマシンには**社内の固定IP**がふられている
|
52
|
+
* 対象マシンのディスクの**暗号化LVMは有効**にしておきたい
|
53
|
+
* パスフレーズの入力の省略までは頑張らなくていい
|
54
|
+
|
55
|
+
# 解決策
|
56
|
+
|
57
|
+
* 電源投入はWake on LANで実施
|
58
|
+
* 暗号化LVMパスフレーズはSSH経由で入力する
|
59
|
+
* Dropbearを設定しておく
|
60
|
+
* ホスト鍵のfingerprint不一致への対策
|
61
|
+
* DropbearとOpenSSHのホストの鍵を揃える
|
62
|
+
|
63
|
+
# Wake on LANで電源投入
|
64
|
+
|
65
|
+
* 対象のマシンにマジックパケットを投げつける
|
66
|
+
* 社内の他のマシンにwakeonlanがインストールされている必要あり
|
67
|
+
|
68
|
+
```sh
|
69
|
+
$ sudo apt install -y wakeonlan
|
70
|
+
$ wakeonlan (対象のMACアドレス)
|
71
|
+
```
|
72
|
+
|
73
|
+
# 暗号化LVMのパスフレーズ入力
|
74
|
+
|
75
|
+
* Dropbearのインストール
|
76
|
+
* SSHの公開鍵を設定
|
77
|
+
* GRUBの設定
|
78
|
+
* ホスト鍵を揃える
|
79
|
+
* initramfsの更新
|
80
|
+
|
81
|
+
# Dropbearのインストール
|
82
|
+
|
83
|
+
* Dropbearとは
|
84
|
+
* <https://matt.ucc.asn.au/dropbear/dropbear.html>
|
85
|
+
* リソースの制約のきびしい組み込み機器向けSSHサーバー
|
86
|
+
|
87
|
+
```sh
|
88
|
+
$ sudo apt install -y dropbear busybox
|
89
|
+
```
|
90
|
+
|
91
|
+
|
92
|
+
# SSHの公開鍵を設定
|
93
|
+
|
94
|
+
* /etc/dropbear-initramfs/authorized_keys
|
95
|
+
|
96
|
+
* sshで~/.ssh/authorized_keysを置くのと一緒
|
97
|
+
|
98
|
+
# GRUBの設定
|
99
|
+
|
100
|
+
```sh
|
101
|
+
GRUB_CMDLINE_LINUX="ip=(固定IP)::192.168.10.1:255.255.255.0::eno1:none"
|
102
|
+
```
|
103
|
+
|
104
|
+
* /etc/default/grub を書き換える
|
105
|
+
* インタフェース名(eno1)等は適宜読み替えて設定する
|
106
|
+
* sudo update-grubで更新する
|
107
|
+
|
108
|
+
# DropbearとOpenSSHのホストの鍵を揃える
|
109
|
+
|
110
|
+
* 初期設定ではDropbearとOpenSSHそれぞれでホストの鍵を生成する
|
111
|
+
* 同一IPでホスト鍵が変わるとssh接続時にエラーになるので面倒
|
112
|
+
|
113
|
+
```sh
|
114
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
115
|
+
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
|
116
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
117
|
+
```
|
118
|
+
|
119
|
+
* dropbearconvertで鍵を変換できる
|
120
|
+
|
121
|
+
# 変換対象の鍵
|
122
|
+
|
123
|
+
* /etc/ssh/ssh_host_ecdsa_key
|
124
|
+
* /etc/dropbear-initramfs/dropbear_ecdsa_host_key
|
125
|
+
* /etc/ssh/ssh_host_ed25519_key
|
126
|
+
* /etc/dropbear-initramfs/dropbear_ed25519_host_key
|
127
|
+
* /etc/ssh/ssh_host_rsa_key
|
128
|
+
* /etc/dropbear-initramfs/dropbear_rsa_host_key
|
129
|
+
|
130
|
+
|
131
|
+
# dropbearconvertの注意(Bullseye)
|
132
|
+
|
133
|
+
* dropbear 2020.81-3 で openssh 8.4p1-5の場合
|
134
|
+
|
135
|
+
```sh
|
136
|
+
$ sudo dropbearconvert openssh dropbear \
|
137
|
+
/etc/ssh/ssh_host_ecdsa_key \
|
138
|
+
/etc/dropbear-initramfs/dropbear_ecdsa_host_key
|
139
|
+
Error: Unsupported OpenSSH key type
|
140
|
+
Error reading key from '/etc/ssh/ssh_host_ecdsa_key'
|
141
|
+
```
|
142
|
+
|
143
|
+
# あつかえる形式に前処理する
|
144
|
+
|
145
|
+
* ssh-keygen -mを指定してPEM形式に変換する
|
146
|
+
|
147
|
+
```sh
|
148
|
+
$ cp /etc/ssh/ssh_host_ecdsa_key /tmp
|
149
|
+
$ ssh-keygen -p -m PEM -f /tmp/ssh_host_ecdsa_key
|
150
|
+
```
|
151
|
+
|
152
|
+
|
153
|
+
# 前処理した鍵を変換する
|
154
|
+
|
155
|
+
```sh
|
156
|
+
$ sudo dropbearconvert openssh dropbear \
|
157
|
+
/tmp/ssh_host_ecdsa_key \
|
158
|
+
/etc/dropbear-initramfs/dropbear_ecdsa_host_key
|
159
|
+
$ sudo dropbearconvert openssh dropbear \
|
160
|
+
/tmp/ssh_host_ed25519_key \
|
161
|
+
/etc/dropbear-initramfs/dropbear_ed25519_host_key
|
162
|
+
$ sudo dropbearconvert openssh dropbear \
|
163
|
+
/tmp/ssh_host_rsa_key \
|
164
|
+
/etc/dropbear-initramfs/dropbear_rsa_host_key
|
165
|
+
```
|
166
|
+
|
167
|
+
# initramfsを更新する
|
168
|
+
|
169
|
+
```sh
|
170
|
+
$ sudo update-initramfs -u
|
171
|
+
```
|
172
|
+
|
173
|
+
# Wake on LANで起動する
|
174
|
+
|
175
|
+
```sh
|
176
|
+
$ wakeonlan (MACアドレス)
|
177
|
+
Sending magic packet to 255.255.255.255:9 with (MACアドレス)
|
178
|
+
```
|
179
|
+
|
180
|
+
# SSHで暗号化LVMのパスワードを解除
|
181
|
+
|
182
|
+
* 暗号化LVMのパスフレーズを入力するとsshが切れて通常起動する
|
183
|
+
|
184
|
+
```ssh
|
185
|
+
% ssh radiant-rboot
|
186
|
+
To unlock root partition, and maybe others like swap, run `cryptroot-unlock`.
|
187
|
+
|
188
|
+
|
189
|
+
BusyBox v1.30.1 (Debian 1:1.30.1-6+b1) built-in shell (ash)
|
190
|
+
Enter 'help' for a list of built-in commands.
|
191
|
+
~ # cryptroot-unlock
|
192
|
+
Please unlock disk nvme0n1p3_crypt:
|
193
|
+
cryptsetup: nvme0n1p3_crypt set up successfully
|
194
|
+
~ # Connection to 192.168.10.109 closed by remote host.
|
195
|
+
Connection to 192.168.10.109 closed.
|
196
|
+
```
|
197
|
+
|
198
|
+
# まとめ
|
199
|
+
|
200
|
+
* Wake on LANとDropbearでリモートからの起動を実現できる
|
201
|
+
* 起動時のパスフレーズ入力は許容できるならお手軽
|
202
|
+
* OpenSSHとDropbearの鍵は統一しておくと便利
|
Binary file
|
data/theme.rb
ADDED
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-kenhys-osc2021-online-nagoya-lt-20210529
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2021.05.29.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kentaro Hayashi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-05-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
description: ''
|
28
|
+
email:
|
29
|
+
- kenhys@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- ".rabbit"
|
35
|
+
- README.md
|
36
|
+
- Rakefile
|
37
|
+
- config.yaml
|
38
|
+
- images/profile.png
|
39
|
+
- osc2021-online-nagoya-lt.md
|
40
|
+
- pdf/osc2021-online-nagoya-lt-20210529-osc2021-online-nagoya-lt.pdf
|
41
|
+
- theme.rb
|
42
|
+
homepage: https://slide.rabbit-shocker.org/authors/kenhys/osc2021-online-nagoya-lt-20210529/
|
43
|
+
licenses:
|
44
|
+
- CC-BY-SA-4.0
|
45
|
+
metadata: {}
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubygems_version: 3.1.6
|
62
|
+
signing_key:
|
63
|
+
specification_version: 4
|
64
|
+
summary: OSC 2021 Online/Nagoya LT
|
65
|
+
test_files: []
|