Use modern ssh-copy-id script instead of the very old one, which behaved differently from the modern one in other GNU/Linux distributions.

This commit is contained in:
Mikhail Novosyolov 2018-10-28 22:50:17 +03:00
parent 16c6c6d21f
commit aeb32c5d58
2 changed files with 2 additions and 55 deletions

View file

@ -20,14 +20,12 @@
Summary: OpenSSH free Secure Shell (SSH) implementation
Name: openssh
Version: 7.8p1
Release: 1
Release: 2
License: BSD
Group: Networking/Remote access
Url: http://www.openssh.com/
Source0: http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/%{name}-%{version}.tar.gz
Source1: http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/%{name}-%{version}.tar.gz.asc
# ssh-copy-id taken from debian, with "usage" added
Source3: ssh-copy-id
Source9: README.sftpfilecontrol
# this is never to be applied by default
# http://www.sc.isc.tohoku.ac.jp/~hgot/sources/openssh-watchdog.html
@ -491,8 +489,7 @@ elif [ -n "$ZSH_VERSION" ]; then
fi
EOF
install -m 0755 %{SOURCE3} %{buildroot}/%{_bindir}/ssh-copy-id
chmod a+x %{buildroot}/%{_bindir}/ssh-copy-id
install -p -m755 contrib/ssh-copy-id %{buildroot}%{_bindir}/
install -m 644 contrib/ssh-copy-id.1 %{buildroot}/%{_mandir}/man1/
# create pre-authentication directory

View file

@ -1,50 +0,0 @@
#!/bin/sh
# Shell script to install your identity.pub on a remote machine
# Takes the remote machine name as an argument.
# Obviously, the remote machine must accept password authentication,
# or one of the other keys in your ssh-agent, for this to work.
ID_FILE="${HOME}/.ssh/identity.pub"
if [ "-i" = "$1" ]; then
shift
# check if we have 2 parameters left, if so the first is the new ID file
if [ -n "$2" ]; then
if expr "$1" : ".*\.pub" ; then
ID_FILE="$1"
else
ID_FILE="$1.pub"
fi
shift # and this should leave $1 as the target name
fi
else
if [ x$SSH_AUTH_SOCK != x ] ; then
GET_ID="$GET_ID ssh-add -L"
fi
fi
if [ $# != 1 ]; then
echo "usage: ssh-copy-id [-i identity_file] [user@]hostname"
exit 1
fi
if [ -z "`eval $GET_ID`" -a -r "${ID_FILE}" ] ; then
GET_ID="cat ${ID_FILE}"
fi
if [ -z "`eval $GET_ID`" ]; then
echo "$0: ERROR: No identities found"
exit 1
fi
{ eval "$GET_ID" ; } | ssh $1 "test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys ; chmod g-w . .ssh .ssh/authorized_keys"
cat <<EOF
Now try logging into the machine, with "ssh '$1'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
EOF