From aeb32c5d58ffeac9d433bbbe20e84a4b478e3f95 Mon Sep 17 00:00:00 2001 From: Mikhail Novosyolov Date: Sun, 28 Oct 2018 22:50:17 +0300 Subject: [PATCH] Use modern ssh-copy-id script instead of the very old one, which behaved differently from the modern one in other GNU/Linux distributions. --- openssh.spec | 7 ++----- ssh-copy-id | 50 -------------------------------------------------- 2 files changed, 2 insertions(+), 55 deletions(-) delete mode 100644 ssh-copy-id diff --git a/openssh.spec b/openssh.spec index 9658313..d2125ae 100644 --- a/openssh.spec +++ b/openssh.spec @@ -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 diff --git a/ssh-copy-id b/ssh-copy-id deleted file mode 100644 index dcc8a6d..0000000 --- a/ssh-copy-id +++ /dev/null @@ -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 <