Python远程操作Linux

安装Paramiko
执行下面的命令pip install paramiko --default-timeout=60
Linux主机SSH安装
保证有一台linux主机
自己搭建虚拟机;
如果没有临时使用云主机
保证ssh服务开启
在linux机器上执行(建议使用Ubuntu)
sudo apt-get install ssh或sudo apt-get install openssh-client
ssh-keygen中间会让你确认,一路回车就行
sudo apt-get update
sudo apt-get install openssh-server
上边就完成了ssh服务的安装,接下来检查是否启动了
ps -e | grep ssh
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:sudo/etc/init.d/ssh start

Linux主机SSH配置
ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如22333.然后重启SSH服务。
通过修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描:
sudo cp /ect/ssh/sshd_config/etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original
编辑配置文件:
gedit /etc/ssh/sshd_config
找到#Port 22修改为:Port 22333
找到#PermitRootLogin,在下边添加一行:PermitRootLogin no
配置完成后重起:sudo /etc/init.d/ssh restart
配置完成后可使用Python操作Linux了

示例:
Import paramiko
#创建ssh对象
ssh=paramiko.SSHClient()
#连接方式
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#发起连接
ssh.connect(“192.168.1.115”,22,”Ubuntu”,”密码”)
#在远程Linux执行命令
stdin,stdout,stderr=ssh.exec_command(“ifconfig”)
#将执行结果stdout打印出来
print(stdout.read().decode(“utf8”))
#关闭ssh连接
ssh.close()

将本地文件上传到linux上
sftp=ssh.open_sftp()
#从远程Linux下载文件到本地
sftp.get(“远程linux上的文件路径”,”本地文件的路径”)
#将本地文件传送到远程Linux
sftp.put(“本地文件的路径”,”远程linux上的存储路径”)

你可能感兴趣的:(Python远程操作Linux)