是通过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)
答案 0 :(得分:0)
您需要创建一个 SSH密钥对,该密钥对由私钥和公钥组成。
私钥应安全地存储在您自己的计算机上,默认情况下,在Linux下为~/.ssh/id_rsa
,在Windows下为C:\users\your_name\.ssh\id_rsa
,但是您可以在同一目录中使用其他文件名,以便您知道以后使用哪个密钥(将来可能需要创建更多SSH密钥)。这是paramiko使用的文件。
公用密钥应复制到服务器。如何完成此操作取决于您的设置。如果是您自己的SFTP服务器,则可以使用SSH或SCP进行。您也可以通过网络界面进行操作。有关更多信息,请查阅SFTP服务器/服务的手册。
可以使用ssh-keygen
创建SSH密钥对。在Linux上,可能已经安装了。如果安装了PuTTY,则在Windows中可能会安装它。
搜索“生成ssh密钥对”或类似的内容,以获取有关如何创建密钥的更多信息(如果您不知道如何创建密钥的话)。有很多网站描述了如何做到这一点。