diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2016-04-25 14:55:34 -0400 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2016-04-25 16:26:23 -0400 |
commit | 38cdaf39bfdbb1369567debc112e91c379f6d792 (patch) | |
tree | 482bc677fddaa37af0df2f223a35294caf91d81d /recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch | |
parent | 3498e94adfcb264965560c34ca4b01652fa7187f (diff) | |
download | meta-virtualization-38cdaf39bfdbb1369567debc112e91c379f6d792.tar.gz |
lxc: update to 2.0.0
2.0.0 is released, and contains many of the patches we've been carrying for
1.x.
With this updated, we drop upstream backports (and submitted patches), and
refresh on patch. Otherwise, everything is the same.
Sanity tested on x86-64.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch')
-rw-r--r-- | recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch b/recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch deleted file mode 100644 index f2f332cb..00000000 --- a/recipes-containers/lxc/files/lxc-busybox-add-OpenSSH-support.patch +++ /dev/null | |||
@@ -1,246 +0,0 @@ | |||
1 | From ed52814c776963efdcc9dcda1ec26fc09930ef93 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bogdan Purcareata <bogdan.purcareata@freescale.com> | ||
3 | Date: Wed, 22 Apr 2015 14:53:32 +0000 | ||
4 | Subject: [PATCH] lxc-busybox: add OpenSSH support | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Add an additional template parameter for SSH support in the container. Currently | ||
10 | this can be implemented using the Dropbear or OpenSSH utility. The respective | ||
11 | tool needs to be available on the host Linux. | ||
12 | |||
13 | If the parameter is omitted, the template will look for the Dropbear utility on | ||
14 | the host and install it if it is available (legacy behavior). | ||
15 | |||
16 | Adding OpenSSH support has been done following the model in the lxc-sshd | ||
17 | template. | ||
18 | |||
19 | Upstream-status: Accepted | ||
20 | [https://github.com/lxc/lxc/commit/ed52814c776963efdcc9dcda1ec26fc09930ef93] | ||
21 | |||
22 | Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com> | ||
23 | Acked-by: Stéphane Graber <stgraber@ubuntu.com> | ||
24 | --- | ||
25 | templates/lxc-busybox.in | 169 ++++++++++++++++++++++++++++++++++++++--------- | ||
26 | 1 file changed, 139 insertions(+), 30 deletions(-) | ||
27 | |||
28 | diff --git a/templates/lxc-busybox.in b/templates/lxc-busybox.in | ||
29 | index 7e05bd6..95961a3 100644 | ||
30 | --- a/templates/lxc-busybox.in | ||
31 | +++ b/templates/lxc-busybox.in | ||
32 | @@ -22,6 +22,7 @@ | ||
33 | |||
34 | LXC_MAPPED_UID= | ||
35 | LXC_MAPPED_GID= | ||
36 | +SSH= | ||
37 | |||
38 | # Make sure the usual locations are in PATH | ||
39 | export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin | ||
40 | @@ -160,6 +161,116 @@ EOF | ||
41 | return $res | ||
42 | } | ||
43 | |||
44 | +install_dropbear() | ||
45 | +{ | ||
46 | + # copy dropbear binary | ||
47 | + cp $(which dropbear) $rootfs/usr/sbin | ||
48 | + if [ $? -ne 0 ]; then | ||
49 | + echo "Failed to copy dropbear in the rootfs" | ||
50 | + return 1 | ||
51 | + fi | ||
52 | + | ||
53 | + # make symlinks to various ssh utilities | ||
54 | + utils="\ | ||
55 | + $rootfs/usr/bin/dbclient \ | ||
56 | + $rootfs/usr/bin/scp \ | ||
57 | + $rootfs/usr/bin/ssh \ | ||
58 | + $rootfs/usr/sbin/dropbearkey \ | ||
59 | + $rootfs/usr/sbin/dropbearconvert \ | ||
60 | + " | ||
61 | + echo $utils | xargs -n1 ln -s /usr/sbin/dropbear | ||
62 | + | ||
63 | + # add necessary config files | ||
64 | + mkdir $rootfs/etc/dropbear | ||
65 | + dropbearkey -t rsa -f $rootfs/etc/dropbear/dropbear_rsa_host_key > /dev/null 2>&1 | ||
66 | + dropbearkey -t dss -f $rootfs/etc/dropbear/dropbear_dss_host_key > /dev/null 2>&1 | ||
67 | + | ||
68 | + echo "'dropbear' ssh utility installed" | ||
69 | + | ||
70 | + return 0 | ||
71 | +} | ||
72 | + | ||
73 | +install_openssh() | ||
74 | +{ | ||
75 | + # tools to be installed | ||
76 | + server_utils="sshd" | ||
77 | + client_utils="\ | ||
78 | + ssh \ | ||
79 | + scp \ | ||
80 | + sftp \ | ||
81 | + ssh-add \ | ||
82 | + ssh-agent \ | ||
83 | + ssh-keygen \ | ||
84 | + ssh-keyscan \ | ||
85 | + ssh-argv0 \ | ||
86 | + ssh-copy-id \ | ||
87 | + " | ||
88 | + | ||
89 | + # new folders used by ssh | ||
90 | + ssh_tree="\ | ||
91 | +$rootfs/etc/ssh \ | ||
92 | +$rootfs/var/empty/sshd \ | ||
93 | +$rootfs/var/lib/empty/sshd \ | ||
94 | +$rootfs/var/run/sshd \ | ||
95 | +" | ||
96 | + | ||
97 | + # create folder structure | ||
98 | + mkdir -p $ssh_tree | ||
99 | + if [ $? -ne 0 ]; then | ||
100 | + return 1 | ||
101 | + fi | ||
102 | + | ||
103 | + # copy binaries | ||
104 | + for bin in $server_utils $client_utils; do | ||
105 | + tool_path=`which $bin` | ||
106 | + cp $tool_path $rootfs/$tool_path | ||
107 | + if [ $? -ne 0 ]; then | ||
108 | + echo "Unable to copy $tool_path in the rootfs" | ||
109 | + return 1 | ||
110 | + fi | ||
111 | + done | ||
112 | + | ||
113 | + # add user and group | ||
114 | + cat <<EOF >> $rootfs/etc/passwd | ||
115 | +sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin | ||
116 | +EOF | ||
117 | + | ||
118 | + cat <<EOF >> $rootfs/etc/group | ||
119 | +sshd:x:74: | ||
120 | +EOF | ||
121 | + | ||
122 | + # generate container keys | ||
123 | + ssh-keygen -t rsa -N "" -f $rootfs/etc/ssh/ssh_host_rsa_key >/dev/null 2>&1 | ||
124 | + ssh-keygen -t dsa -N "" -f $rootfs/etc/ssh/ssh_host_dsa_key >/dev/null 2>&1 | ||
125 | + | ||
126 | + # by default setup root password with no password | ||
127 | + cat <<EOF > $rootfs/etc/ssh/sshd_config | ||
128 | +Port 22 | ||
129 | +Protocol 2 | ||
130 | +HostKey /etc/ssh/ssh_host_rsa_key | ||
131 | +HostKey /etc/ssh/ssh_host_dsa_key | ||
132 | +UsePrivilegeSeparation yes | ||
133 | +KeyRegenerationInterval 3600 | ||
134 | +ServerKeyBits 768 | ||
135 | +SyslogFacility AUTH | ||
136 | +LogLevel INFO | ||
137 | +LoginGraceTime 120 | ||
138 | +PermitRootLogin yes | ||
139 | +StrictModes yes | ||
140 | +RSAAuthentication yes | ||
141 | +PubkeyAuthentication yes | ||
142 | +IgnoreRhosts yes | ||
143 | +RhostsRSAAuthentication no | ||
144 | +HostbasedAuthentication no | ||
145 | +PermitEmptyPasswords yes | ||
146 | +ChallengeResponseAuthentication no | ||
147 | +EOF | ||
148 | + | ||
149 | + echo "'OpenSSH' utility installed" | ||
150 | + | ||
151 | + return 0 | ||
152 | +} | ||
153 | + | ||
154 | configure_busybox() | ||
155 | { | ||
156 | rootfs=$1 | ||
157 | @@ -230,34 +341,6 @@ EOF | ||
158 | lxc-unshare -s MOUNT -- /bin/sh < $CHPASSWD_FILE | ||
159 | rm $CHPASSWD_FILE | ||
160 | |||
161 | - # add ssh functionality if dropbear package available on host | ||
162 | - which dropbear >/dev/null 2>&1 | ||
163 | - if [ $? -eq 0 ]; then | ||
164 | - # copy dropbear binary | ||
165 | - cp $(which dropbear) $rootfs/usr/sbin | ||
166 | - if [ $? -ne 0 ]; then | ||
167 | - echo "Failed to copy dropbear in the rootfs" | ||
168 | - return 1 | ||
169 | - fi | ||
170 | - | ||
171 | - # make symlinks to various ssh utilities | ||
172 | - utils="\ | ||
173 | - $rootfs/usr/bin/dbclient \ | ||
174 | - $rootfs/usr/bin/scp \ | ||
175 | - $rootfs/usr/bin/ssh \ | ||
176 | - $rootfs/usr/sbin/dropbearkey \ | ||
177 | - $rootfs/usr/sbin/dropbearconvert \ | ||
178 | - " | ||
179 | - echo $utils | xargs -n1 ln -s /usr/sbin/dropbear | ||
180 | - | ||
181 | - # add necessary config files | ||
182 | - mkdir $rootfs/etc/dropbear | ||
183 | - dropbearkey -t rsa -f $rootfs/etc/dropbear/dropbear_rsa_host_key > /dev/null 2>&1 | ||
184 | - dropbearkey -t dss -f $rootfs/etc/dropbear/dropbear_dss_host_key > /dev/null 2>&1 | ||
185 | - | ||
186 | - echo "'dropbear' ssh utility installed" | ||
187 | - fi | ||
188 | - | ||
189 | return 0 | ||
190 | } | ||
191 | |||
192 | @@ -315,12 +398,12 @@ remap_userns() | ||
193 | usage() | ||
194 | { | ||
195 | cat <<EOF | ||
196 | -$1 -h|--help -p|--path=<path> | ||
197 | +$1 -h|--help -p|--path=<path> -s|--ssh={dropbear,openssh} | ||
198 | EOF | ||
199 | return 0 | ||
200 | } | ||
201 | |||
202 | -options=$(getopt -o hp:n: -l help,rootfs:,path:,name:,mapped-uid:,mapped-gid: -- "$@") | ||
203 | +options=$(getopt -o hp:n:s: -l help,rootfs:,path:,name:,mapped-uid:,mapped-gid:,ssh: -- "$@") | ||
204 | if [ $? -ne 0 ]; then | ||
205 | usage $(basename $0) | ||
206 | exit 1 | ||
207 | @@ -336,6 +419,7 @@ do | ||
208 | -n|--name) name=$2; shift 2;; | ||
209 | --mapped-uid) LXC_MAPPED_UID=$2; shift 2;; | ||
210 | --mapped-gid) LXC_MAPPED_GID=$2; shift 2;; | ||
211 | + -s|--ssh) SSH=$2; shift 2;; | ||
212 | --) shift 1; break ;; | ||
213 | *) break ;; | ||
214 | esac | ||
215 | @@ -384,3 +468,28 @@ if [ $? -ne 0 ]; then | ||
216 | echo "failed to remap files to user" | ||
217 | exit 1 | ||
218 | fi | ||
219 | + | ||
220 | +if [ -n "$SSH" ]; then | ||
221 | + case "$SSH" in | ||
222 | + "dropbear") | ||
223 | + install_dropbear | ||
224 | + if [ $? -ne 0 ]; then | ||
225 | + echo "Unable to install 'dropbear' ssh utility" | ||
226 | + exit 1 | ||
227 | + fi ;; | ||
228 | + "openssh") | ||
229 | + install_openssh | ||
230 | + if [ $? -ne 0 ]; then | ||
231 | + echo "Unable to install 'OpenSSH' utility" | ||
232 | + exit 1 | ||
233 | + fi ;; | ||
234 | + *) | ||
235 | + echo "$SSH: unrecognized ssh utility" | ||
236 | + exit 1 | ||
237 | + esac | ||
238 | +else | ||
239 | + which dropbear >/dev/null 2>&1 | ||
240 | + if [ $? -eq 0 ]; then | ||
241 | + install_dropbear | ||
242 | + fi | ||
243 | +fi | ||
244 | -- | ||
245 | 2.1.4 | ||
246 | |||