Как удаленно выполнить команду ssh, команду sudo без пароля

С bash

Первый подход - используйте подстановку параметров

#use command substitution to set command output into variable var
var=$(ypmatch $EndUser auto_home)
#strip out the first :
var=${var/:}
#replace all instances of / with \
var=${var//\//\\}
echo $var

rtp1-filer-ns\homedir-private\private007\user

Второй подход - используйте массивы

# Set path components into array frags
IFS=/ read -a frags < <(ypmatch $EndUser auto_home)

# Strip ":" off rtp1-filer-ns
frags[0]="${frags[0]%:}"

# Set IFS to \ to print frags \-separated
echo "$(IFS=\\ ;printf '%s\n' "${frags[*]}";)"

rtp1-filer-ns\homedir-private\private007\user
4
20.12.2018, 09:06
2 ответа

Если вы используете MacBook с TouchID, вы можете настроить SSH sudo с Mac TouchID (отпечатком пальца, 2FA)

https://medium.com/@prbinu/touch2sudo-enable-remote-sudo-two-factor-authentication-using-mac-touch-id-df638b7da594

Код:https://github.com/prbinu/touch2sudo

0
27.01.2020, 20:46

У меня сработало, используя sshpass:

#!/bin/bash
PASS="Password"
COMMAND="/tmp/test.sh"
USER="USER"
HOST="1.2.3.4"
sshpass -p $PASS ssh -t $USER@$HOST "echo \"$PASS\" |sudo -S $COMMAND"
0
12.11.2020, 13:34

Теги

Похожие вопросы