- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试通过 pysftp
连接到远程主机:
try:
with pysftp.Connection(inventory[0], username='transit',
private_key='~/.ssh/id_rsa.sftp', port=8055) as sftp:
sftp.put('/home/me/test.file')
except Exception, err:
print sys.exc_info()
print err
但是,我遇到了一个奇怪的异常,我找不到太多详细信息。
(<class 'paramiko.ssh_exception.SSHException'>, SSHException('Bad host key from server',), <traceback object at 0x7fa76269c5a8>)
Bad host key from server
我发现了一个相关问题,建议我运行 ssh-keygen -R [host]
来替换我的 known_hosts
文件中的 key ——一旦我这样做了,我出现新错误:
(<class 'paramiko.ssh_exception.SSHException'>, SSHException('No hostkey for host abc.com found.',), <traceback object at 0x7f6b8520cb48>)
No hostkey for host abc.com found.
现在,如果我尝试通过 ssh 连接到该主机,它会再次提示我信任要放回我的 known_hosts
文件的 key ,我接受它并可以愉快地通过 ssh 连接到该主机。在这一步之后,如果我尝试再次运行我的脚本,我会收到原始错误 Bad host key from server
。
我是不是做错了什么?
ninja edit:我应该提到以下在终端上运行良好:
sftp -i .ssh/id_rsa.sftp -oPort=8055 user@host.com
sftp> put /home/me/test.file
Paramiko 调试输出:
[2016-07-14 10:32:23,809] | paramiko.transport - DEBUG - starting thread (client mode): 0x7f1dab10L
[2016-07-14 10:32:23,810] | paramiko.transport - DEBUG - Local version/idstring: SSH-2.0-paramiko_2.0.1
[2016-07-14 10:32:23,836] | paramiko.transport - DEBUG - Remote version/idstring: SSH-2.0-mod_sftp/0.9.9
[2016-07-14 10:32:23,836] | paramiko.transport - INFO - Connected (version 2.0, client mod_sftp/0.9.9)
[2016-07-14 10:32:23,837] | paramiko.transport - DEBUG - kex algos:[u'ecdh-sha2-nistp256', u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521', u'diffie-hellman-group-exchange-sha256', u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1', u'diffie-hellman-group1-sha1', u'rsa1024-sha1'] server key:[u'ssh-rsa', u'ssh-dss'] client encrypt:[u'aes256-ctr', u'aes192-ctr', u'aes128-ctr', u'aes256-cbc', u'aes192-cbc', u'aes128-cbc', u'blowfish-ctr', u'blowfish-cbc', u'cast128-cbc', u'arcfour256', u'arcfour128', u'3des-ctr', u'3des-cbc'] server encrypt:[u'aes256-ctr', u'aes192-ctr', u'aes128-ctr', u'aes256-cbc', u'aes192-cbc', u'aes128-cbc', u'blowfish-ctr', u'blowfish-cbc', u'cast128-cbc', u'arcfour256', u'arcfour128', u'3des-ctr', u'3des-cbc'] client mac:[u'hmac-sha2-256', u'hmac-sha2-512', u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96', u'hmac-ripemd160', u'umac-64@openssh.com'] server mac:[u'hmac-sha2-256', u'hmac-sha2-512', u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96', u'hmac-ripemd160', u'umac-64@openssh.com'] client compress:[u'none'] server compress:[u'none'] client lang:[u''] server lang:[u''] kex follows?False
[2016-07-14 10:32:23,837] | paramiko.transport - DEBUG - Kex agreed: diffie-hellman-group1-sha1
[2016-07-14 10:32:23,838] | paramiko.transport - DEBUG - Cipher agreed: aes128-ctr
[2016-07-14 10:32:23,838] | paramiko.transport - DEBUG - MAC agreed: hmac-sha2-256
[2016-07-14 10:32:23,838] | paramiko.transport - DEBUG - Compression agreed: none
[2016-07-14 10:32:23,935] | paramiko.transport - DEBUG - kex engine KexGroup1 specified hash_algo <built-in function openssl_sha1>
[2016-07-14 10:32:23,936] | paramiko.transport - DEBUG - Switch to new keys ...
[2016-07-14 10:32:23,952] | paramiko.transport - DEBUG - Bad host key from server
[2016-07-14 10:32:23,952] | paramiko.transport - DEBUG - Expected: ssh-rsa: '\x00\x00\x00\x07ssh-rsa\x00\x00\x00\x01#\x00\x00\x01\x01\x00\xb9\x05\xddUF?o\xeet\xad\x06=\x83\xd6\xa8\xb1\x06\x03\xb7\xb5\xa5C\x80\x0c~\xa8\x83[w!\x16y\xe6@\xdajX\x90+c\xd4\x18X\xd7\xff\x05\x06\xe2\x19\x96\x8c&J\x0c\x1f\xd2\xefC\xa5\xc6\xbb\x1f\xc9N\xd7r\x12\xd29\x1f\xe1\xb6F\xe8\xdc(w~\x1f\xea\xea\xfdUT?^V\xe8=\'\xd60\xdc\xc44gYnn\xfe\xe8^?\x8b\xa8"\xda\xc7(\x18\xc3<\xa9\x1c\xa1)A3_\x00<$y\xbe\xd4$\xc2S\xe6\x93\xe3B^\xef\xe6\xbf\xb5\x88\xd6\x98EeP\x9aZm\xa7\xc5&\xffn\xc1lb\x1e[\x8d!*\xfa\xa3\xce\xb6\xe7\xd5U\r<E\xd2\xe1\x89.\xed%o\xefju\xde>=*b\xaeBO\xbf>\xe4/,\xd5@R\xc5\x9e\xac\xf5\x80\x04\xa9s)3\xb5\xbc\xc2\xcc\xe7\xa7\xb8\x04>uA\xb4O\xa6\xf3\xdb\x9c2\xb5"%n\x89\t\x8192\xe7#n\x82p\xee\xdf\x16]\xb3A\x93\xebm|\xb9\xd7\nXsmw\x81\xa9'
[2016-07-14 10:32:23,953] | paramiko.transport - DEBUG - Got : ssh-rsa: "\x00\x00\x00\x07ssh-rsa\x00\x00\x00\x01#\x00\x00\x01\x01\x00\xc6_\xea\xc1yF\xd5\xdd\x146\x8c\x0eU\xeah[3\x16VP\xde2\xbe~\xed\x92\xef\xb81\x14\xd8\xb7\xa7\x08\xa3\x02\xa8\n\x9f\x7f{\x896\x1b\x89/,\x92\x86\xc7M\xa5\x7f0Cj\xe6\x93\xb0\x0eup%\xa2p\x9d3i\xaco\xf7\x14\xfb\xfe\x8f}a\xcbJ :\xdf\xdd1\x10\xe8;\xd3%\x98k')\xf8\x1c\xc1D\x97\\\xcc\xe6\xf5*6\xc2\xf1\xb8\xcf!\xeed\x1co\xc1\x03\xb4v\xc0,?\xda\xc7\xa3\xd9\xe8\xafy\xf5k\xf7\xe8\xa1\x9cr\xfa\x81\xcd\xee\xd3\xeao\xa7\x072\xce\x8b\xf9\x95\x03\xa1\xe2\xaf\t\xa2\xba\xa1O\xbc\xbf}}\x9e\xc0t\x9bC\x88\xbd\x18'\x00?-\xa0\x05\x83I\x1ah#I\xfc\xebc$\xfc\xa0\xad\xeeP\x80\x88Bh_\xeb`\xb6\xab\x8bC\x83\x987\xba\x05\xb14\xea\x90\xac>\x99&\x99\xb3\xf9\nC\xdf\xfd\xba<\xf8\xaf\xca\xaf\xfa\x15+\x1e,L\xa1\xf0\x1e\xa5`\xbd>\xf4\xa63)\xae7F\xd2\xc9\xf2\xf3A\xa4\x10u\xa9"
(<class 'paramiko.ssh_exception.SSHException'>, SSHException('Bad host key from server',), <traceback object at 0x7fb87f143ef0>)
Bad host key from server
[2016-07-14 10:32:24,037] | paramiko.transport - DEBUG - EOF in transport thread
最佳答案
解决方法
这似乎是 pysftp
包装器的某种错误...我不确定。恢复到原生 paramiko
让我连接得很好,所以我现在就这样做。当前工作代码:
rsa_key = paramiko.RSAKey.from_private_key_file('~/.ssh/the_key', password='myPassword')
transport = paramiko.Transport((inventory[0],8055))
transport.connect(username='theUser', pkey=rsa_key)
sftp = paramiko.SFTPClient.from_transport(transport)
print sftp.listdir()
关于python - pysftp -- paramiko SSHException,来自服务器的错误主机 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38362714/
我使用 pysftp(它是 paramiko 的包装器)。 import pysftp cnopts = pysftp.CnOpts() cnopts.hostkeys = None sftp=pys
我正在尝试使用 pysftp 连接到服务器传输文件。 每当我运行 con = pysftp.Connection('ftp.abc.com', username='user', password='m
我正在使用 Pysftp 来 sftp 放置大量文件,并且希望在它运行时获得一些进度输出,以便我知道它是如何做的。我可以使用详细选项(或等效选项)来获取该输出吗? 谢谢。 最佳答案 我可能在这里错误地
我尝试了以下三种更改目录的方法,但它永远不会改变。还有其他人遇到过这个问题吗? import pysftp cnopts = pysftp.CnOpts() cnopts.hostkeys = Non
我正在尝试使用以下脚本连接到服务器: import pysftp cnopts = pysftp.CnOpts() cnopts.hostkeys = None srv = pysftp.Connec
我在使用 pysftp 复制文件时遇到问题。这最初是一个有效的 WinSCP 脚本。我可以使用winscp.com 和filezilla 中下面的脚本中提供的凭据手动复制该文件。我已验证凭据是否正确并
我正在尝试编写一个脚本,以便在修改日期小于 24 小时的情况下从 SFTP 服务器检索文件。这是我迄今为止的尝试: cnopts = sftp.CnOpts() cnopts.hostkeys = N
我的代码: import pysftp s = pysftp.Connection(host='test.rebex.net', username='demo', password='password
使用 pysftp,我看到了如何在您已经连接后为任何命令设置超时,但我没有看到如何为连接本身设置超时。我觉得我在某处丢失了一些东西。只是为了尝试一下,我尝试添加 timeout=3到 Connecti
我想将我的实际私钥值作为参数传递,而不是提供文件路径。 到目前为止,我已经使用了以下代码: def upload_file_to_remote(hostname, port, username, pa
当我尝试连接时,我收到以下消息,需要一些帮助。我正在执行的脚本如下。关于如何解决此问题的任何建议? 此外,一旦我解决了这个问题,我就希望向此脚本添加监听功能,直到结果文件可用并从不同的远程目录下载它。
我正在尝试从远程服务器下载文件。为此,我需要定义“charset=ASCII”(我在 FileZilla 客户端中尝试过)。然后只有连接成功,我才能查看文件。否则我会从客户端收到“身份验证错误”(使用
我正在尝试建立到 sftp 服务器的测试连接。 (如 Python Pysftp Error 中所示)。我通过终端建立与服务器的第一个连接,从服务器获取了 key 。那工作完美无缺。但是,如果我运行
I am creating a backup script using pysftp module. I am able to upload and download files. When i am
我试图捕获 paramiko异常(exception),但它们仍被写入标准错误。 有没有办法停止在那里写? 编辑:它甚至发生在 paramiko 参与之前: import pysftp try:
我有一个用 Python 3 编写的小型服务,它使用 pysftp: with pysftp.Connection( host=host, username=connection_da
我正在使用 pysftp 库的 get_r 函数 ( https://pysftp.readthedocs.io/en/release_0.2.9/pysftp.html#pysftp.Connect
我是 Python 新手,正在编写一个使用 pysftp 模块的脚本。 pysftp 模块中有一个函数我遇到了问题——它是重命名函数。 这是电话 srv = pysftp.Connection(hos
我正在使用 python 3.3.2 和 pysftp 制作一个备份实用程序,该实用程序将文件副本存储在我网络上的另一台计算机上。 我已经知道如何使用 pysftp 来传输这些文件,但是我希望看到传输
我需要从服务器获取文件,然后将它们写入数据库。我使用: with pysftp.Connection(host, username=username, password=password, cnopt
我是一名优秀的程序员,十分优秀!