当我试图通过设置运行carbon-cache.py start
时
ENABLE_MANHOLE = True
MANHOLE_INTERFACE = 127.0.0.1
MANHOLE_PORT = 7222
MANHOLE_USER = admin
MANHOLE_PUBLIC_KEY = ssh-rsa AAAAB3NzaC1yc2EAAAABiwAaAIEAoxN0sv/e4eZCPpi3N3KYvyzRaBaMeS2RsOQ/cDuKv11dlNzVeiyc3RFmCv5Rjwn/lQ79y0zyHxw67qLyhQ/kDzINc4cY41ivuQXm2tPmgvexdrBv5nsfEpjs3gLZfJnyvlcVyWK/lId8WUvEWSWHTzsbtmXAF2raJMdgLTbQ8wE=
我得到以下错误
^{2}$日志文件:
25/10/2016 13:50:18 :: 'listen%s' % (self.method,))(*self.args, **self.kwargs)
25/10/2016 13:50:18 :: File "/opt/graphite/local/lib/python2.7/site-packages/twisted/internet/posixbase.py", line 478, in listenTCP
25/10/2016 13:50:18 :: p.startListening()
25/10/2016 13:50:18 :: File "/opt/graphite/local/lib/python2.7/site-packages/twisted/internet/tcp.py", line 1001, in startListening
25/10/2016 13:50:18 :: self.factory.doStart()
25/10/2016 13:50:18 :: File "/opt/graphite/local/lib/python2.7/site-packages/twisted/internet/protocol.py", line 74, in doStart
25/10/2016 13:50:18 :: self.startFactory()
25/10/2016 13:50:18 :: File "/opt/graphite/local/lib/python2.7/site-packages/twisted/conch/ssh/factory.py", line 41, in startFactory
25/10/2016 13:50:18 :: raise error.ConchError('no host keys, failing')
25/10/2016 13:50:18 :: twisted.conch.error.ConchError: ('no host keys, failing', None)
作为一个新的扭曲,我不知道如何解决它。在
Twisted 16.1包含了对Twisted Conch(实现检修孔功能)的更改,使其不再使用硬编码的SSH主机密钥对。有关详细信息,请参见https://twistedmatrix.com/trac/ticket/8229。在
为了解决这个问题,carbon cache应该获得配置变量来指定公共和私有主机密钥,并使用其}属性在
publicKeys
和{ConchFactory
实例上设置它们。我查看了当前的实现carbon的manhole.py
,其中包括:def createManholeListener(): # ... sessionFactory = ConchFactory(sshPortal) return sessionFactory
应该修改如下:
def createManholeListener(): # ... sessionFactory = ConchFactory(sshPortal) sessionFactory.publicKeys[b'ssh-rsa'] = keys.Key.fromString(settings.MANHOLE_HOST_RSA_PUBLIC_KEY) sessionFactory.privateKeys[b'ssh-rsa'] = keys.Key.fromString(settings.MANHOLE_HOST_RSA_PRIVATE_KEY) return sessionFactory
这假设密钥是用
ssh-keygen -t rsa
生成的。如果您希望支持其他键类型,那么这两个dict都是由指定键类型的字节字符串索引的。在相关问题 更多 >
编程相关推荐