Bash SSH 버전 [복제]

Bash SSH 버전 [복제]

Bash의 변수에 SSH 버전 번호를 할당할 수 없습니다. 아래 코드를 실행하면 "uname -a"의 출력은 "os" 변수에 할당되지만 "ssh -v"의 출력은 터미널 창에 나타나지만 "ssh_v" 변수에는 할당되지 않습니다.

이는 다양한 버전의 Solaris 및 Ubuntu에서 발생하는 것으로 확인되었지만 그 이유는 모르겠습니다.

암호:

#!/usr/bin/env bash

ssh_v=$(ssh -V)
printf "ssh_version = $ssh_v\n"

os=$(uname -a)
printf "OS_version = $os\n"

산출:

root@myserver:/usr/build/run# ./test.sh
Sun_SSH_2.4, SSH protocols 1.5/2.0, OpenSSL 0x100020bf
ssh_version =
OS_version = SunOS myserver 5.11 11.3 sun4v sparc sun4v

답변1

SSH는 stdout이 아닌 stderr로 버전을 인쇄하는 것 같습니다. 따라서 stderr를 stdout으로 리디렉션해야 합니다.

ssh_v=$(ssh -V 2>&1)

관련 정보