Python使用privatekey通过ssh登录并创建一个新用户

时间:2017-08-17 04:12:29

标签: python ssh

如何使用私钥使我的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()

请告诉我,如果有人能够帮助我做一个有效的例子,我会非常感激。

由于

1 个答案:

答案 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"命令不会提示任何输入。

相关问题