이 명령을 로 실행하고 있습니다 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
원격 시스템에 터미널( )을 생성하여
ssh
비밀번호를 묻는 메시지를 표시하도록 지시할 수 있습니다. 일반 명령을 사용하면 ssh에 플래그를 제공하여 이를 수행할 수 있습니다. 안타깝게도 이 작업을 수행하는 데 도움을 드릴 수 없습니다.pty
su
-t
SSH.NET문서가 CHM 형식으로 제공되기 때문에 열 수 없습니다.su
원하는 대상 사용자 계정 "root"를 사용하여 원격 서버에 연결하면 이 섹션을 완전히 제거할 수 있습니다. 보안상의 이유로 비밀번호를 사용한 루트 로그인 시도를 거부하는 일부 시스템에서는 이 작업이 실패할 수 있으므로 인증서 기반 로그인을 살펴보는 것이 좋습니다. 명령을 사용하여 적합한 인증서를 생성할 수 있습니다ssh-keygen -t rsa
.
답변2
sudo
실행할 명령 전에 사용할 수 있습니까? 대신에:
su
whatever command
하다:
sudo whatever command