如何在python语言中使用没有密码的SFTP访问服务器
Posted
技术标签:
【中文标题】如何在python语言中使用没有密码的SFTP访问服务器【英文标题】:how to access server using SFTP without password in python language 【发布时间】:2019-10-04 14:38:51 【问题描述】:这是通过 paramiko 进行无密码连接的代码 当我运行此代码时,它显示 RSA 私有文件无效 它是什么以及如何解决这个问题
请解释倒数第三行的意思 如何在windows中生成密钥 我正在提供下面的代码,请帮助
代码:
#get IP and username for remote access
IP = input("Enter host_server IP: ").split()
username = input("Enter username: ").split()
#create a file on host_server for file
file_a = open(date+"file.txt", "a") #ignore the date variable
file = str(date+"file.txt")
import paramiko
import os
privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
ssh.connect(IP[0], username = user[0], pkey = mykey)
【问题讨论】:
【参考方案1】:您需要创建一个 SSH 密钥对,它由私钥和公钥组成。
私钥应该安全地存储在你自己的计算机上,默认情况下在Linux下~/.ssh/id_rsa
,或者在Windows下C:\users\your_name\.ssh\id_rsa
,但是你可以在同一个目录中使用不同的文件名,这样你就知道它是哪个密钥稍后(您将来可能需要创建更多 SSH 密钥)。这是paramiko使用的文件。
应将公钥复制到服务器。如何完成取决于您的设置。如果它是您自己的 SFTP 服务器,您可以使用 SSH 或 SCP 来实现。您也可以通过 Web 界面进行操作。有关详细信息,请参阅 SFTP 服务器/服务的手册。
可以使用ssh-keygen
创建 SSH 密钥对。在 Linux 上,这可能已经安装。在 Windows 中,如果您安装了 PuTTY,您可能会拥有它。
如果您不知道如何创建密钥,请搜索“生成 ssh 密钥对”或类似内容以获取有关如何创建密钥的更多信息。有许多网站描述了如何做到这一点。
【讨论】:
以上是关于如何在python语言中使用没有密码的SFTP访问服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用密码或 SSH 指纹进行 SFTP 身份验证 WinSCP C# .NET 程序集
如何使用没有密码的 SSH 身份验证连接到 Windows SFTP 服务器? [复制]