我正在尝试以较低级别使用SSH协议(即,我不想启动Shell或其他任何东西,我只想传递数据)。因此,我直接使用了Paramiko的Transport
类。
我已经完成了服务器端的工作,但是现在我被一些愚蠢的事情所困扰。为了使客户端连接到服务器,Transport
的Transport
以两个connect
method对象作为参数:客户端的私钥(connect
)和服务器的公钥([C0 ])。
PKey
类被描述为“公钥的基类”。但是问题是我无法弄清楚如何仅通过ssh公钥(即字符串PKey
)创建此类pkey
对象。它具有使用私钥构建此类对象的方法,但显然我不希望客户端知道服务器的私钥。
我感觉自己正在忽略一些简单的事情,但是我找不到在网络上进行操作的信息;大多数教程都使用更高级别的hostkey
来加载系统的PKey
键。
不得不在另一个不仅仅用于密钥比较(它用于签名检查)的情况下再次解决此问题。这是正确的方法。回想起来,它很简单,但几乎没有记录。
PKey
通过调用PKey
中描述的各个方法来解决它:
PKey
或多或少ssh-whatever AAblablabla
。
尽管我仍然愿意接受更好/更简短的建议。就目前而言,SSHClient
class方法的SSHClient
参数似乎不可用。
添加到为传输客户端提供的解决方案上。这是我为SSH客户端添加字符串公共密钥的解决方案:
known_hosts