add ssh-keygen bash completion

This commit is contained in:
renmingshuai 2022-11-02 17:17:48 +08:00
parent a19f19f8dc
commit 71b20610b1
2 changed files with 76 additions and 3 deletions

View File

@ -6,7 +6,7 @@
%{?no_gtk2:%global gtk2 0}
%global sshd_uid 74
%global openssh_release 6
%global openssh_release 7
Name: openssh
Version: 8.8p1
@ -30,6 +30,7 @@ Source13: sshd-keygen
Source14: sshd.tmpfiles
Source15: sshd-keygen.target
Source16: ssh-agent.service
Source17: ssh-keygen-bash-completion.sh
Patch0: openssh-6.7p1-coverity.patch
Patch1: openssh-7.6p1-audit.patch
Patch2: openssh-7.1p2-audit-race-condition.patch
@ -307,6 +308,7 @@ mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh
mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh/ssh_config.d
mkdir -p -m755 $RPM_BUILD_ROOT%{_libexecdir}/openssh
mkdir -p -m755 $RPM_BUILD_ROOT%{_var}/empty/sshd
mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
%make_install
@ -330,6 +332,7 @@ install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT%{_bindir}/
install contrib/ssh-copy-id.1 $RPM_BUILD_ROOT%{_mandir}/man1/
install -m644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf
install contrib/gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/gnome-ssh-askpass
install -m644 %{SOURCE17} $RPM_BUILD_ROOT/etc/bash_completion.d/ssh-keygen-bash-completion.sh
ln -s gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/ssh-askpass
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
@ -368,6 +371,7 @@ getent passwd sshd >/dev/null || \
%attr(0755,root,root) %{_bindir}/ssh-keygen
%attr(0755,root,root) %dir %{_libexecdir}/openssh
%attr(2555,root,ssh_keys) %{_libexecdir}/openssh/ssh-keysign
%attr(0644,root,root) %{_sysconfdir}/bash_completion.d/ssh-keygen-bash-completion.sh
%files clients
%attr(0755,root,root) %{_bindir}/ssh
@ -424,6 +428,12 @@ getent passwd sshd >/dev/null || \
%attr(0644,root,root) %{_mandir}/man8/sftp-server.8*
%changelog
* Wed Nov 2 2022 renmingshuai<renmingshuai@huawei.com> - 8.8p1-7
- Type:requirement
- CVE:NA
- SUG:NA
- DESC:add ssh-keygen bash completion
* Thu Sep 01 2022 duyiwei<duyiwei@kylinos.cn> - 8.8P1-6
- Type:bugfix
- CVE:NA

View File

@ -0,0 +1,63 @@
# ssh-keygen(1) completion -*- shell-script -*-
_ssh_keygen()
{
local cur prev words cword
_init_completion -n = || return
case $prev in
-*[abCIJjMNnrPSVWz])
return
;;
-*E)
COMPREPLY=( $(compgen -W 'md5 sha256' -- "$cur") )
return
;;
-*[FR])
# TODO: trim this down to actual entries in known hosts files
_known_hosts_real -- "$cur"
return
;;
-*D)
_filedir so
return
;;
-*[fGKsT])
_filedir
return
;;
-*m)
COMPREPLY=( $(compgen -W 'PEM PKCS8 RFC4716' -- "$cur") )
return
;;
-*O)
if [[ $cur != *=* ]]; then
COMPREPLY=( $(compgen -W 'clear force-command=
no-agent-forwarding no-port-forwarding no-pty no-user-rc
no-x11-forwarding permit-agent-forwarding
permit-port-forwarding permit-pty permit-user-rc
permit-x11-forwarding source-address=' -- "$cur") )
[[ $COMPREPLY == *= ]] && compopt -o nospace
fi
return
;;
-*t)
local protocols=$(_xfunc ssh _ssh_query "$1" protocol-version)
local types='dsa ecdsa ed25519 rsa sm2'
if [[ $protocols == *1* ]]; then
types+=' rsa1'
fi
COMPREPLY=( $(compgen -W "$types" -- "$cur") )
return
;;
esac
if [[ $cur == -* ]]; then
local opts=$(_parse_usage "$1" "-?")
[[ -z "$opts" ]] && opts=$(_parse_help "$1" "-?") # OpenSSH < 7
COMPREPLY=( $(compgen -W "$opts" -- "$cur") )
fi
} &&
complete -F _ssh_keygen ssh-keygen
# ex: filetype=sh