From ff4c6702b71acb34e5b893b18e4b59360ad1c6d7 Mon Sep 17 00:00:00 2001 From: Geoffray Levasseur-Brandin Date: Thu, 19 Jun 2025 14:39:10 +0200 Subject: [PATCH] secured rmhost --- profile.d/ssh.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/profile.d/ssh.sh b/profile.d/ssh.sh index 89b4727..d9ae409 100644 --- a/profile.d/ssh.sh +++ b/profile.d/ssh.sh @@ -47,9 +47,9 @@ rmhost() while [[ $1 ]]; do local hst=$1 && shift - isipv4 $hst >/dev/null + isipv4 "$hst" >/dev/null local v4=$? - isipv6 $hst >/dev/null + isipv6 "$hst" >/dev/null local v6=$? if [[ $v4 -eq 0 || $v6 -eq 0 ]]; then @@ -59,10 +59,14 @@ rmhost() unset v4 v6 if [[ ! $ip && $hst ]]; then - ip=$(host $hst | grep "has address" | awk '{print $NF}') - [[ ! $? ]] && + if ! ip=$(host "$hst" 2>/dev/null | awk '/has address/ {print $NF; exit}'); then disp E "Impossible to extract IP from hostname." && return 1 + fi + [[ -z $ip ]] && { + disp E "Impossible to extract IP from hostname." + return 1; + } fi if [[ $hst ]]; then @@ -94,13 +98,17 @@ ssr() esac done + command -v ssh >/dev/null 2>&1 || { + disp E "ssh is not installed." + return 127 + } [[ ! $1 ]] && disp E "Please specify the server you want to log in." && return 1 local srv=$1 && shift - ssh -Y root@$srv $@ + ssh -Y root@"$srv" "$@" } export -f ssr