当前位置: 首页 > 知识库问答 >
问题:

使用用户名、密码和密钥对的PHP SSH2 SFTP

刁英朗
2023-03-14

数据供应商为使用其SFTP服务器请求了公共SSH密钥。他们向我们提供了:

  • 用户名
  • 密码
  • 主机名
  • 端口

我正在尝试使用私钥和用户名/密码在php中使用流包装器ssh2.sftp//。我的代码如下:

$options = array(
    'ssh2' => array(
        'privkey_file' => '/path/to/priv_key',
    ),
);
$context = stream_context_create($options);
fopen('ssh2.sftp://<username>:<password>@<host>:<port>', 'rb', false, $context);
Warning: fopen(ssh2.sftp://...@<ip>...): failed to open stream: operation failed in ...
sftp -oPort=<port> -i /path/to/priv_key -v <username>@<host>
Authenticated with partial success.
password: <password-entered>
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Sending subsystem: sftp
sftp>

有人有什么想法吗?

我对使用ssh2函数的想法持开放态度,但我强烈希望使用文件系统和流函数。

共有1个答案

寿高阳
2023-03-14

老实说,我认为使用phpseclib会更好,这是一个纯PHP SFTP实现。其中,与libssh2相比,它更容易诊断问题。

另外,如果您想使用文件系统和流函数,phpseclib也支持这些功能:

https://github.com/phpseclib/phpseclib/blob/master/phpseclib/net/sftp/stream.php

 类似资料:
  • 这是可能的还是加密必须共享和使用相同的密钥? 主要目的就是这样。 我将有两个客户端可以发送和接收加密数据到彼此。

  • 我有麻烦管理詹金斯的秘密密码。我希望密码不显示在日志上,但我尝试了两种方法没有成功: 第一次尝试 我尝试使用全局凭据(不受限制)设置用户和pwd,如下所示: 我执行了: 但我可以在日志中看到,用户的写入是正确的,但pwd的写入方式与它的路径相同: 在我的自动测试中,也是通过输入完整路径而不是变量的值。 第二次尝试 我试着用这样的密文: 但控制台日志上显示的是原样的密码。 有人能帮我吗? 先谢谢你。

  • 用户名和密码的来源 在章节中,用户详细信息保存在用户文件中。 FreeRADIUS使用此文件的内容以在身份验证过程中验证凭据。 FreeRADIUS通常是企业基础设施的一部分,而企业已经在其他地方创建了已有用户。 本章将介绍如何使用现有的用户存储。 在本章中,我们将: 查看用户商店选项 使用Linux系统用户作为FreeRADIUS的用户存储 使用MySQL作为FreeRADIUS的用户存储 使用

  • 我用过这个命令 生成密钥库。它工作正常,但从我读到的内容来看,这个命令还应该提示您输入密钥密码(而不是存储密码)?我从来没有收到过这样的提示。我能跑 查看密钥库的内容。钥匙似乎就在那里。。。正确的别名在那里。在哪里获取/设置特定别名的密码? 我有一个key.properties在Android目录 在build.gradle我有: 当我试图生成一个发布版本时,我得到了 我想它可能与keyPassw

  • 用户:用户名=>{密码:哈希,年龄:45} 用户:0=>{USERNAME:USERNAME,password:HASH,年龄:45} 请注意,我希望通过名称查找用户,因此需要第二组键值来将用户名与ID相关联。 考虑到每个用户名都是唯一的,并且必须是字母数字的,是否有任何特殊的原因来说明使用ID系统可能是有益的。 附言。由于Redis处理哈希的方式,我实际上不确定这两种方法之间的内存差异,所以关于

  • 我想让我的用户注册一个唯一的用户名和密码(而不是电子邮件密码)。我的一切都在工作,我: 报名啦 > 用户 Q Z q F zW xp d Mfc 0 x my Iq 5 IDAr 1 bz r 2 凭据 电子邮件:myemail@gmail.com 用户名:“MyUsername” 凭据 电子邮件:another@gmail.com 用户名:"另一个 登录 查询数据库以获取与用户名关联的用户,并使