A construção da string aqui <<<… alimenta a string dada mais uma nova linha como entrada para o comando. Então, openssl sha1 -binary <<< 'a0+ZvgYqsMFHRerif0go8g==258EAFA5-E914-47DA-95CA-C5AB0DC85B11' é equivalente a
printf '%s\n' 'a0+ZvgYqsMFHRerif0go8g==258EAFA5-E914-47DA-95CA-C5AB0DC85B11' | openssl sha1 -binary
Mas sua especificação diz “Chave de concatenação com 258EAFA5-E914-47DA-95CA-C5AB0DC85B11”, não “Tecla de concatenação com 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 e uma nova linha”. Então você precisa de
printf '%s' 'a0+ZvgYqsMFHRerif0go8g==258EAFA5-E914-47DA-95CA-C5AB0DC85B11' | openssl sha1 -binary
e isso produz tswGtNOxrRhDmC04XQaDigMeaJA= .
echo -n … é equivalente a printf %s … , exceto que há shells que não suportam echo -n ou que expandem escape de barras invertidas em echo … , enquanto printf %s … tem um comportamento padrão (sempre imprime o argumento literalmente) .