termux-packages/packages/openssh/build.sh
deed02392 e046e1b949 Set up home structure for authorized_keys
Since password auth is disabled by default, we depend on keys in our home dir but they're not created for us and the perms are wrong by default. This commit sets it up correctly for the user to simply add their key to the empty authorized_keys file
2017-08-11 13:19:00 +02:00

85 lines
3.1 KiB
Bash
Executable File

TERMUX_PKG_HOMEPAGE=https://www.openssh.com/
TERMUX_PKG_DESCRIPTION="Secure shell for logging into a remote machine"
TERMUX_PKG_VERSION=7.5p1
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0
TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, libutil"
# --disable-strip to prevent host "install" command to use "-s", which won't work for target binaries:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-etc-default-login
--disable-lastlog
--disable-libutil
--disable-pututline
--disable-pututxline
--disable-strip
--disable-utmp
--disable-utmpx
--disable-wtmp
--disable-wtmpx
--sysconfdir=$TERMUX_PREFIX/etc/ssh
--with-cflags=-Dfd_mask=int
--with-ldns
--with-libedit
--without-ssh1
--without-stackprotect
--with-pid-dir=$TERMUX_PREFIX/var/run
--with-privsep-path=$TERMUX_PREFIX/var/empty
ac_cv_func_endgrent=yes
ac_cv_func_fmt_scaled=no
ac_cv_func_getlastlogxbyname=no
ac_cv_func_readpassphrase=no
ac_cv_func_strnvis=no
ac_cv_header_sys_un_h=yes
ac_cv_search_getrrsetbyname=no
"
TERMUX_PKG_MAKE_INSTALL_TARGET="install-nokeys"
TERMUX_PKG_RM_AFTER_INSTALL="bin/slogin share/man/man1/slogin.1"
termux_step_pre_configure() {
autoreconf
CPPFLAGS+=" -DHAVE_ATTRIBUTE__SENTINEL__=1"
LD=$CC # Needed to link the binaries
LDFLAGS+=" -llog" # liblog for android logging in syslog hack
}
termux_step_post_configure() {
# We need to remove this file before installing, since otherwise the
# install leaves it alone which means no updated timestamps.
rm -Rf $TERMUX_PREFIX/etc/moduli
}
termux_step_post_make_install () {
# OpenSSH 7.0 disabled ssh-dss by default, keep it for a while in Termux:
echo -e "PasswordAuthentication no\nPubkeyAcceptedKeyTypes +ssh-dss\nSubsystem sftp $TERMUX_PREFIX/libexec/sftp-server" > $TERMUX_PREFIX/etc/ssh/sshd_config
echo "PubkeyAcceptedKeyTypes +ssh-dss" > $TERMUX_PREFIX/etc/ssh/ssh_config
cp $TERMUX_PKG_BUILDER_DIR/source-ssh-agent.sh $TERMUX_PREFIX/bin/source-ssh-agent
cp $TERMUX_PKG_BUILDER_DIR/ssh-with-agent.sh $TERMUX_PREFIX/bin/ssha
# Install ssh-copy-id:
cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id.1 $TERMUX_PREFIX/share/man/man1/
cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id $TERMUX_PREFIX/bin/
chmod +x $TERMUX_PREFIX/bin/ssh-copy-id
mkdir -p $TERMUX_PREFIX/var/run
echo "OpenSSH needs this folder to put sshd.pid in" >> $TERMUX_PREFIX/var/run/README.openssh
mkdir -p $TERMUX_PREFIX/etc/ssh/
cp $TERMUX_PKG_SRCDIR/moduli $TERMUX_PREFIX/etc/ssh/moduli
}
termux_step_create_debscripts () {
echo "mkdir -p \$HOME/.ssh" > postinst
echo "touch \$HOME/.ssh/authorized_keys" >> postinst
echo "chmod 700 \$HOME/.ssh" >> postinst
echo "chmod 600 \$HOME/.ssh/authorized_keys" >> postinst
echo "" >> postinst
echo "for a in rsa dsa ecdsa ed25519; do" >> postinst
echo " KEYFILE=$TERMUX_PREFIX/etc/ssh/ssh_host_\${a}_key" >> postinst
echo " test ! -f \$KEYFILE && ssh-keygen -N '' -t \$a -f \$KEYFILE" >> postinst
echo "done" >> postinst
echo "exit 0" >> postinst
chmod 0755 postinst
}