paramiko
원격 노드를 묶어 ssh로 사용 하고 root
priviledge로 일부 명령 줄을 실행 하고 싶습니다.
내 홈 디렉토리에 ssh 키가 있으므로 원격 노드로 ssh 할 때 비밀번호를 입력 할 필요가 없습니다.
그러나 다음 스크립트를 실행할 때 :
def connect(hostname):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username='niky', pkey=paramiko.RSAKey.from_private_key(open('id_rsa'), 'passwd'), timeout = 240.0) return ssh
def run(hostname):
ssh = connect(hostname)
(stdin, stdout, stderr) = ssh.exec_command("sudo ls")
res = stderr.readlines()
print hostname+': '+''.join(str(elem) for elem in res)+'\n'
run(remote.nity.com)
다음과 같은 오류가 발생했습니다.
remote.nity.com: sudo: no tty present and no askpass program specified
모든 것이 잘 작동 sudo
하기 전에 추가하지 않으면 ls
잠재적 인 이유는 무엇입니까? 감사!