여러 명령을 사용하여 원격 호스트에서 grep 실행

여러 명령을 사용하여 원격 호스트에서 grep 실행

두 번째 명령은 무시됩니다.

ssh -q -t -o ConnectTimeout=10 learnserver sudo su - root -c 'hostname' && "/grep PermitRootLogin /opt/ssh/etc/sshd_config/"

답변1

일련의 명령을 ssh에 스크립트로 전달할 수 있습니다. 당신의 상황을 예로 들어보자

{
  echo "sudo su -"
  echo "hostname"
  echo "grep PermitRootLogin /opt/ssh/etc/sshd_config/"
} > /tmp/some-script.sh

그런 다음

ssh your-remote < /tmp/some-script.sh

"스크립트 생성"은 스크립트가 어떻게 보이는지에 대한 예일 뿐입니다.

답변2

우선, 당신은 정말로 그것이 필요하지 않으며 sudo su, 확실히 필요하지도 않습니다 sudo su - root. 이 su명령의 기본값은 루트이지만 이 sudo명령은 루트로 실행해야 하는 명령을 실행하기 위해 존재합니다. 따라서 sudo command꼭 필요한 경우가 아니면 루트로 명령을 실행하지 않아야 하며 hostname루트는 필요하지 않습니다. 이 모든 것을 고려하면 필요한 작업을 수행해야 합니다.

ssh -q -t -o ConnectTimeout=10 learnserver sh -c "hostname && sudo grep PermitRootLogin /opt/ssh/etc/sshd_config"

즉, 여러 명령을 실행하려고 하지 말고 하나로 병합하십시오. 여기서는 sh -c command"시작 sh하고 실행하다 command"라는 의미로 사용합니다.

관련 정보