ssh에서 su -c를 실행하십시오.


10

루트 권한이 필요한 명령 인 SSH를 통해 서버의 BIOS 버전을 확인하려고합니다.

ssh remote-server su -c dmidecode

그러나 이것은 물론 오류와 함께 실패합니다.

표준은 tty 여야합니다

이 작업을 어떻게합니까? sudo를 사용할 수 없으며 root @ remote-server로 로그인하려고 할 때 'su'명령에 사용하는 비밀번호를 허용하지 않습니다. RedHat Enterprise Linux 4를 사용하고 있습니다.


또한 "su -c"대신 sudo를 사용하는 것이 좋습니다
wfaulk

1
"나는 sudo를 사용할 수 없습니다"
aaron

"Sudo를 사용할 수 없습니다"가 왜 그런지에 대한 더 많은 정보가 있기를 바랍니다.
dannysauer

@dannysauer 모든 OS에있는 것은 아닙니다. 나는 OP와 같은 RedHat에 있지 않다는 것을 제외하고는 동일한 문제를 해결하려고 노력하고 있습니다. sudo가없는 유닉스 변형에 있습니다. OP가 왜 RedHat에서 OP를 사용할 수 없는지 궁금하지만 질문이 제기 된 것에 대해 감사합니다.
Loduwijk

sudo는 내가 익숙한 모든 UNIX 변형을 기반으로하지만 모든 버전에 설치 (또는 구성)되어 있지 않다는 데 동의합니다. 왜 구성되지 않은지 더 궁금했습니다 (몇 년이 지났다고 생각합니다). : D
dannysauer

답변:


13

-tssh가 tty를 강제로 할당하는 데 사용하십시오 .

ssh -t -t remote-user su -c dmidecode

루트가 ssh를 직접 허용하도록 고려할 수도 있습니다. 공개 키 인증을 사용하는 경우 암호를 전달하지 않으므로 더 안전 할 수 있습니다. 이렇게하려면 다음을 입력하여 신뢰할 수있는 IP 주소 이외의 다른 곳에서 루트 로그인을 차단하십시오 /etc/security/access.conf.

+ : root : 10.20.30.40
- : root : ALL EXCEPT LOCAL

UsePAM에서 비활성화되어 있지 않은지 확인하십시오 .sshd_config


2
-t귀하의 예에 두 가지를 포함시킨 이유는 무엇입니까?
wfaulk

2
매뉴얼 페이지에 따르면, 다중 -t 옵션은 "ssh에 로컬 tty가없는 경우에도 강제 tty 할당"
Heath

Fedora에서는 작동하지 않습니다. 스크립트가 비밀번호를 묻는 메시지를 표시하지만 비밀번호는 일반 텍스트로 표시되며 Enter 키를 누르면 중단됩니다.
Cerin

@Chris 그것은 다른 문제입니다. 새로운 질문을 해보세요.
geocar

이중 -t에 대한 코멘트 @Heath 덕분에, 그 나를 위해 작동를 CentOS에서
폴 셀 드레이크

0

원격 서버에 표준 사용자로 로그인 한 다음 sudo 를 사용할 수 없습니까?

다음과 같이 ssh에서 실행할 명령을 인용 할 수도 있습니다.

ssh remote-server 'su -c dmidecode'

또는

ssh remote-server "su -c dmidecode"

3
-1 명령을 인용해도 터미널이 없어도 해결되지 않기 때문에 -1입니다. sudo 제안에 +1 워시 야.
wfaulk

"나는 sudo를 사용할 수 없습니다"
aaron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.