doushi1473 2013-01-17 05:09
浏览 740
已采纳

PHP + SSH如何修复:“错误:ssh2_connect():启动SSH连接时出错(-4):收到无效的MAC?”

Working on a project that was built using ssh2_connect to download files from a server. The production server the project is running on works, but getting ssh2_connect to work on my Mac running OSX 10.8 is proving to be problematic.

The following command:

ssh2_connect("myhost", 22);

Produces the following error:

Error: ssh2_connect(): Error starting up SSH connection(-4): Invalid MAC received

I can connect from the command line, so I know it isn't a system wide SSH issue. Does anyone know how to debug or solve this problem? Thanks in advance and may your children be blessed with large brains and social skills :)

UPDATE: Solution posted below

  • 写回答

2条回答 默认 最新

  • dongwen1909 2013-01-17 16:15
    关注

    The PHP documentation has an example that provides the 3rd argument. The author of this post http://phing.tigris.org/ds/viewMessage.do?dsForumId=1083&viewType=browseAll&dsMessageId=3022056#messagefocus (Derek Gallo) had the exact same issue, and he was able to point me in the right direction. Thanks Derek. It seems that some distributions require the extra parameters. In the end, I converted my code to use phpseclib as it is a pure PHP solution that doesn't require any special modules.

    $methods = array(
      'kex' => 'diffie-hellman-group1-sha1',
      'client_to_server' => array(
        'crypt' => '3des-cbc',
        'comp' => 'none'),
      'server_to_client' => array(
        'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
        'comp' => 'none'));
    
    ssh2_connect("myhost", 22, $methods);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错