Python自动连接SSH
Python自动连接SSH
在 Python 中,可以使用 paramiko 模块来编写脚本自动执行 SSH 命令。paramiko 是一个用于 SSHv2 的 Python 实现,可以帮助你在脚本中进行远程执行命令。
(图片来源网络,侵删)
首先,确保安装了 paramiko:
pip install paramiko
然后,你可以使用以下 Python 脚本示例:
import paramiko # 远程主机的地址、用户名和私钥文件路径 remote_host = "example.com" remote_user = "your_username" port = 22 pwd = "password" is_private_key = False private_key_path = "/path/to/your/private/key" # 创建 SSH 客户端 client = paramiko.SSHClient() # 自动添加主机密钥 (此处可能会有潜在的安全风险,请谨慎使用) client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接到远程主机,2种方法,密钥法和密码法 if(is_private_key): private_key = paramiko.RSAKey(filename=private_key_path) client.connect(remote_host, port, username=remote_user, pkey=private_key) else: ssh.connect(remote_host, port, remote_user, pwd) # 执行远程命令 stdin, stdout, stderr = client.exec_command("ls") # 打印命令输出 print(stdout.read().decode()) # 关闭 SSH 连接 client.close()
在这个脚本中:
- paramiko.SSHClient() 创建了一个 SSH 客户端。
- paramiko.AutoAddPolicy() 设置了一个策略,用于在第一次连接时自动添加主机密钥到本地 known_hosts 文件中。请注意这可能存在安全风险。
- paramiko.RSAKey(filename=private_key_path) 使用指定路径的私钥文件进行认证。
- client.connect() 连接到远程主机。
- client.exec_command("ls") 执行了一个远程命令,这里是简单的列出目录。
- stdout.read().decode() 读取命令的标准输出。
请替换示例中的远程主机地址、用户名和私钥文件路径为你的实际信息。并记住在生产环境中慎用自动添加主机密钥的方式,最好在安全环境中手动添加。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。