su로 명령 실행

su로 명령 실행

이 명령을 로 실행하고 있습니다 su. sshNet을 사용하여 연결을 설정한 SSH다음 명령을 설정하려고 하면 su -응답이 없습니다. 로그인 후 실행하려는 비밀번호와 명령이 있습니다 su.

내가 알고 있는 내 코드는 이제 다음과 같습니다.

using (var sshClient = new SshClient("10.10.8.113","ems", "ems"))
{
    sshClient.Connect();
    sshClient.CreateCommand("su -").Execute();
    sshClient.CreateCommand("123456").Execute();
    sshClient.CreateCommand("EmsMenu.sh");
}

Shell 구현 사용에 대해 읽었지만 그런 식으로는 성공하지 못했습니다.

답변1

이러한 실패의 원인은 기본적으로 대상 머신에 ssh터미널(a)이 생성되지 않기 때문입니다. 이는 비밀번호를 묻는 메시지가 표시될 수 없으므로 실패함을 pty의미합니다 . su( 같은 이유로 @Scott이 지적했듯이 sudo플래그가 지정되지 않으면 메시지를 표시할 수도 없습니다 .)-S

  1. 원격 시스템에 터미널( )을 생성하여 ssh비밀번호를 묻는 메시지를 표시하도록 지시할 수 있습니다. 일반 명령을 사용하면 ssh에 플래그를 제공하여 이를 수행할 수 있습니다. 안타깝게도 이 작업을 수행하는 데 도움을 드릴 수 없습니다.ptysu-tSSH.NET문서가 CHM 형식으로 제공되기 때문에 열 수 없습니다.

  2. su원하는 대상 사용자 계정 "root"를 사용하여 원격 서버에 연결하면 이 섹션을 완전히 제거할 수 있습니다. 보안상의 이유로 비밀번호를 사용한 루트 로그인 시도를 거부하는 일부 시스템에서는 이 작업이 실패할 수 있으므로 인증서 기반 로그인을 살펴보는 것이 좋습니다. 명령을 사용하여 적합한 인증서를 생성할 수 있습니다 ssh-keygen -t rsa.

답변2

sudo실행할 명령 전에 사용할 수 있습니까? 대신에:

su
whatever command

하다:

sudo whatever command

관련 정보