如何使用私钥使我的python脚本登录到服务器thrugh ssh然后使用给定的密码创建用户?我尝试了这段代码,但我无法像发送“sudo adduser username”
那样更进一步和“sudo adduser username groupname”...
import paramiko
k = paramiko.RSAKey.from_private_key_file("/Users/whatever/Downloads/mykey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "connecting"
c.connect( hostname = "www.acme.com", username = "ubuntu", pkey = k )
print "connected"
commands = [ "sudo adduser myuser" ]
for command in commands:
print "Executing {}".format( command )
stdin , stdout, stderr = c.exec_command(command)
print stdout.read()
print( "Errors")
print stderr.read()
c.close()
请告诉我,如果有人能够帮助我做一个有效的例子,我会非常感激。
由于
答案 0 :(得分:0)
我通过运行不同的命令测试了您的代码。因此,请检查您是否能够运行简单的命令,例如" sudo uptime"。如果工作正常,请按照以下说明操作。
如果您运行" sudo adduser myuser",系统将提示您输入更多详细信息,如下面的输出所示:
sudo adduser myuser
Adding user `myuser' ...
Adding new group `myuser' (1002) ...
Adding new user `myuser' (1002) with group `myuser' ...
The home directory `/home/myuser' already exists. Not copying from `/etc/skel'.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for myuser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
所以,使用命令" sudo useradd myuser"而不是" sudo adduser myuser"因为" useradd"命令不会提示任何输入。