Add option to remove ssh keys
This commit is contained in:
parent
83e72eeec3
commit
2ebd08e26c
33
pishrink.sh
33
pishrink.sh
|
@ -1,12 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
usage() { echo "Usage: $0 [-s] imagefile.img [newimagefile.img]"; exit -1; }
|
usage() { echo "Usage: $0 [-s|-k] imagefile.img [newimagefile.img]"; exit -1; }
|
||||||
|
|
||||||
should_skip_autoexpand=false
|
should_skip_autoexpand=false
|
||||||
|
remove_ssh_keys=false
|
||||||
|
|
||||||
while getopts ":s" opt; do
|
while getopts ":sk" opt; do
|
||||||
case "${opt}" in
|
case "${opt}" in
|
||||||
s) should_skip_autoexpand=true ;;
|
s) should_skip_autoexpand=true ;;
|
||||||
|
k) remove_ssh_keys=true ;;
|
||||||
*) usage ;;
|
*) usage ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -60,6 +62,32 @@ tune2fs_output=$(tune2fs -l "$loopback")
|
||||||
currentsize=$(echo "$tune2fs_output" | grep '^Block count:' | tr -d ' ' | cut -d ':' -f 2)
|
currentsize=$(echo "$tune2fs_output" | grep '^Block count:' | tr -d ' ' | cut -d ':' -f 2)
|
||||||
blocksize=$(echo "$tune2fs_output" | grep '^Block size:' | tr -d ' ' | cut -d ':' -f 2)
|
blocksize=$(echo "$tune2fs_output" | grep '^Block size:' | tr -d ' ' | cut -d ':' -f 2)
|
||||||
|
|
||||||
|
# Remove ssh keys if requested
|
||||||
|
if [ "$remove_ssh_keys" = true ]; then
|
||||||
|
echo "Removing ssh keys..."
|
||||||
|
mountdir=$(mktemp -d)
|
||||||
|
mount "$loopback" "$mountdir"
|
||||||
|
|
||||||
|
# Remove keys and create script to recreate them on next boot
|
||||||
|
rm -f -v $mountdir/etc/ssh/ssh_host_*_key*
|
||||||
|
cat <<\EOF > "$mountdir/lib/systemd/system/regenerate_ssh_host_keys.service"
|
||||||
|
[Unit]
|
||||||
|
Description=Regenerate SSH host keys
|
||||||
|
Before=ssh.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStartPre=-/bin/dd if=/dev/hwrng of=/dev/urandom count=1 bs=4096
|
||||||
|
ExecStartPre=-/bin/sh -c "/bin/rm -f -v /etc/ssh/ssh_host_*_key*"
|
||||||
|
ExecStart=/usr/bin/ssh-keygen -A -v
|
||||||
|
ExecStartPost=/bin/sh -c "/bin/rm -f -v /lib/systemd/system/regenerate_ssh_host_keys.service"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
umount "$mountdir"
|
||||||
|
fi
|
||||||
|
|
||||||
#Check if we should make pi expand rootfs on next boot
|
#Check if we should make pi expand rootfs on next boot
|
||||||
if [ "$should_skip_autoexpand" = false ]; then
|
if [ "$should_skip_autoexpand" = false ]; then
|
||||||
#Make pi expand rootfs on next boot
|
#Make pi expand rootfs on next boot
|
||||||
|
@ -146,6 +174,7 @@ fi
|
||||||
|
|
||||||
#Add some free space to the end of the filesystem
|
#Add some free space to the end of the filesystem
|
||||||
extra_space=$(($currentsize - $minsize))
|
extra_space=$(($currentsize - $minsize))
|
||||||
|
echo "Extra_space $extra_space"
|
||||||
for space in 5000 1000 100; do
|
for space in 5000 1000 100; do
|
||||||
if [[ $extra_space -gt $space ]]; then
|
if [[ $extra_space -gt $space ]]; then
|
||||||
minsize=$(($minsize + $space))
|
minsize=$(($minsize + $space))
|
||||||
|
|
Loading…
Reference in New Issue