如何使用 python 语言的无密码 SFTP 访问服务器

how to access server using SFTP without password in python language

是通过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)

您需要创建一个 SSH 密钥对,它由一个私钥和 public 密钥组成。

私钥应该安全地存储在您自己的计算机上,默认在Linux下的~/.ssh/id_rsa,或Windows下的C:\users\your_name\.ssh\id_rsa,但您可以使用同一目录中的不同文件名,以便您稍后知道它是哪个密钥(将来您可能需要创建更多 SSH 密钥)。这是paramiko使用的文件。

public 密钥应复制到服务器。如何完成取决于您的设置。如果它是您自己的 SFTP 服务器,您可能可以使用 SSH 或 SCP 来做到这一点。您也可以通过 Web 界面完成此操作。请参阅 SFTP 手册 server/service 了解更多信息。

可以使用 ssh-keygen 创建 SSH 密钥对。在 Linux 上,这可能已经安装。在 Windows 中,如果您安装了 PuTTY,您可能会拥有它。

如果您不知道如何创建密钥,请搜索 "generate ssh key pair" 或类似内容以获取有关如何创建密钥的更多信息。有许多网站描述了如何做到这一点。