当我需要在两个服务器(例如Windows Server-> Linux Server)之间设置StrictHostKeyChecking通信时,我遇到了sftp配置问题。按照here的定义(将查找用于字符串匹配“StrictHostKeyChecking”):

如果此标志设置为“yes”,则ssh永远不会自动将主机密钥添加到〜/ .ssh / known_hosts文件,并且拒绝连接主机密钥已更改的主机。此选项强制用户手动添加所有新主机。如果此标志设置为“no”,则ssh会自动将新的主机密钥添加到用户已知的主机文件中。

我想使用PSFTP.EXE将文件从Windows机器传输到Unix服务器,显然没有~/.ssh/known_hosts的概念。那么我的问题是... StrictHostKeyCheckingPSFTP.EXE等价于什么?是简单的-batch可以避免交互式提示吗?

最佳答案

默认情况下,所有PuTTY工具(包括psftp)的行为都类似于StrictHostKeyChecking=ask

使用-batchpsftp(以及pscpplink)表现为StrictHostKeyChecking=yes
如果您使用此开关,并且psftp发现服务器的主机密钥已更改,您将得到:



在没有切换的情况下(默认行为),您将收到一个交互式提示。

同样,对于新服务器的主机密钥。
psftp(以及其他任何PuTTY工具)从不充当StrictHostKeyChecking=no

显然,-batch也会影响所有其他提示,而不仅仅是主机按键提示(与StrictHostKeyChecking相比)。 psftp中有以下提示(pscpplink):

  • 用户名,密码,密码,密码更改和键盘交互提示(使用-batch终止连接)
  • 不安全的算法提示(与主机密钥提示的行为相同)
  • 附加到现有的日志文件吗? (当日志文件已经存在时,使用-batch禁用日志记录,并且启用了“每次询问用户”选项以选择如果日志文件已经存在时该怎么做)
  • 关于ssh - PSFTP.EXE上的StrictHostKeyChecking配置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25978461/

    10-12 14:03