- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在通过私钥连接到 SFTP 服务器时遇到问题。首先,我有 id_rsa.pkk 文件。我使用 PuttyGen 程序加载 key 并将其转换为 open-ssh 私钥作为 privateKey.pem 开始为:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,BA05B7BC99E7A2CE
....
和 publicKey.pub 作为
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9kfwanzIXJ4BAgd3myWoeSDDGprDNSTYalJ+RON4AYCjiGeDu0sOnjqVtoWMRxQ820kvsv4iUMnXsTrewyklCNLsyUNt62htuvyvcVLSHtLqJFkBXrhgncF7+SEXiakQivYD50EifpU4ZlMGN/LzwQ40zRa4uXQyaGH16ifxPtggKjfaVNKXqfsdkUJ7JlnP6VlLV3pQM/ckLHIWB9FtMWDB1fHirqwjJEZAC04ez4askDtP4jUMcfYtQOynbZuRCB33qLf2GvWpafmaC83m7i53ee34MuOAixk6HOwXwTzTc8wVwPndSXSjtAGRQ/ScjQ3dpSWLhZ7lFGUe/viwN imported-openssh-key
当我通过控制台发送它时:
sftp -oIdentityFile=privateKey.pem -oServerAliveInterval=60 -oServerAliveCountMax=10000 -oTCPKeepAlive=yes username@host
一切正常。控制台要求我输入密码。当我输入密码时,它会正确地将我连接到服务器...
sftp>
但是当我尝试使用
$connection = ssh2_connect($host, $port);
ssh2_auth_pubkey_file($connection, $username, $pubKey, $privKey, $passphrase);
使用 $pubKey 作为 publicKey.pub 和 $privKey 作为 privateKey.pem 我有这样的错误
ssh2_auth_pubkey_file(): Authentication failed for username using public key
当我尝试使用 phpseclib 时
$key = new Crypt_RSA();
$key->setPassword('password');
$key->loadKey(file_get_contents('privateKey.pem'));
$sftp = new Net_SFTP('host', 22);
if ($sftp->login('username', $key)) {
echo 'OK';
} else {
echo 'LOGIN FAILED';
}
我登录失败。
我还尝试通过控制台转换 ppk 文件:
puttygen id_rsa.ppk -O private-openssh -o privateKey.pem
and next
puttygen id_rsa.ppk -O public-openssh -o publicKey.pub
同样的问题...我做错了什么?
编辑:返回 $sftp->getLog();
<-
00000000 53:53:48:2d:32:2e:30:2d:4f:70:65:6e:53:53:48:5f SSH-2.0-OpenSSH_
00000010 37:2e:34:0d:0a 7.4..
->
00000000 53:53:48:2d:32:2e:30:2d:70:68:70:73:65:63:6c:69 SSH-2.0-phpsecli
00000010 62:5f:31:2e:30:20:28:6f:70:65:6e:73:73:6c:2c:20 b_1.0 (openssl,
00000020 62:63:6d:61:74:68:29:0d:0a bcmath)..
-> NET_SSH2_MSG_KEXINIT (since last: 0,0346, network: 0s)
00000000 ba:5e:c6:b4:17:db:32:79:5c:2c:19:0e:5f:78:b7:66 .^....2y\,.._x.f
00000010 00:00:00:7e:64:69:66:66:69:65:2d:68:65:6c:6c:6d ...~diffie-hellm
00000020 61:6e:2d:67:72:6f:75:70:31:2d:73:68:61:31:2c:64 an-group1-sha1,d
00000030 69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72 iffie-hellman-gr
00000040 6f:75:70:31:34:2d:73:68:61:31:2c:64:69:66:66:69 oup14-sha1,diffi
00000050 65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:2d e-hellman-group-
00000060 65:78:63:68:61:6e:67:65:2d:73:68:61:31:2c:64:69 exchange-sha1,di
00000070 66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f ffie-hellman-gro
00000080 75:70:2d:65:78:63:68:61:6e:67:65:2d:73:68:61:32 up-exchange-sha2
00000090 35:36:00:00:00:29:72:73:61:2d:73:68:61:32:2d:32 56...)rsa-sha2-2
000000a0 35:36:2c:72:73:61:2d:73:68:61:32:2d:35:31:32:2c 56,rsa-sha2-512,
000000b0 73:73:68:2d:72:73:61:2c:73:73:68:2d:64:73:73:00 ssh-rsa,ssh-dss.
000000c0 00:00:00:00:00:00:00:00:00:00:39:68:6d:61:63:2d ..........9hmac-
000000d0 73:68:61:32:2d:32:35:36:2c:68:6d:61:63:2d:73:68 sha2-256,hmac-sh
000000e0 61:31:2d:39:36:2c:68:6d:61:63:2d:73:68:61:31:2c a1-96,hmac-sha1,
000000f0 68:6d:61:63:2d:6d:64:35:2d:39:36:2c:68:6d:61:63 hmac-md5-96,hmac
00000100 2d:6d:64:35:00:00:00:39:68:6d:61:63:2d:73:68:61 -md5...9hmac-sha
00000110 32:2d:32:35:36:2c:68:6d:61:63:2d:73:68:61:31:2d 2-256,hmac-sha1-
00000120 39:36:2c:68:6d:61:63:2d:73:68:61:31:2c:68:6d:61 96,hmac-sha1,hma
00000130 63:2d:6d:64:35:2d:39:36:2c:68:6d:61:63:2d:6d:64 c-md5-96,hmac-md
00000140 35:00:00:00:04:6e:6f:6e:65:00:00:00:04:6e:6f:6e 5....none....non
00000150 65:00:00:00:00:00:00:00:00:00:00:00:00:00 e.............
<- NET_SSH2_MSG_KEXINIT (since last: 0,0113, network: 0,0112s)
00000000 5a:81:4f:df:f3:f2:41:21:b3:8c:00:99:8b:fa:18:0f Z.O...A!........
00000010 00:00:01:40:63:75:72:76:65:32:35:35:31:39:2d:73 ...@curve25519-s
00000020 68:61:32:35:36:2c:63:75:72:76:65:32:35:35:31:39 ha256,curve25519
00000030 2d:73:68:61:32:35:36:40:6c:69:62:73:73:68:2e:6f -sha256@libssh.o
00000040 72:67:2c:65:63:64:68:2d:73:68:61:32:2d:6e:69:73 rg,ecdh-sha2-nis
00000050 74:70:32:35:36:2c:65:63:64:68:2d:73:68:61:32:2d tp256,ecdh-sha2-
00000060 6e:69:73:74:70:33:38:34:2c:65:63:64:68:2d:73:68 nistp384,ecdh-sh
00000070 61:32:2d:6e:69:73:74:70:35:32:31:2c:64:69:66:66 a2-nistp521,diff
00000080 69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70 ie-hellman-group
00000090 2d:65:78:63:68:61:6e:67:65:2d:73:68:61:32:35:36 -exchange-sha256
000000a0 2c:64:69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d ,diffie-hellman-
000000b0 67:72:6f:75:70:31:36:2d:73:68:61:35:31:32:2c:64 group16-sha512,d
000000c0 69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72 iffie-hellman-gr
000000d0 6f:75:70:31:38:2d:73:68:61:35:31:32:2c:64:69:66 oup18-sha512,dif
000000e0 66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75 fie-hellman-grou
000000f0 70:2d:65:78:63:68:61:6e:67:65:2d:73:68:61:31:2c p-exchange-sha1,
00000100 64:69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67 diffie-hellman-g
00000110 72:6f:75:70:31:34:2d:73:68:61:32:35:36:2c:64:69 roup14-sha256,di
00000120 66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f ffie-hellman-gro
00000130 75:70:31:34:2d:73:68:61:31:2c:64:69:66:66:69:65 up14-sha1,diffie
00000140 2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:31:2d -hellman-group1-
00000150 73:68:61:31:00:00:00:41:73:73:68:2d:72:73:61:2c sha1...Assh-rsa,
00000160 72:73:61:2d:73:68:61:32:2d:35:31:32:2c:72:73:61 rsa-sha2-512,rsa
00000170 2d:73:68:61:32:2d:32:35:36:2c:65:63:64:73:61:2d -sha2-256,ecdsa-
00000180 73:68:61:32:2d:6e:69:73:74:70:32:35:36:2c:73:73 sha2-nistp256,ss
00000190 68:2d:65:64:32:35:35:31:39:00:00:00:af:63:68:61 h-ed25519....cha
000001a0 63:68:61:32:30:2d:70:6f:6c:79:31:33:30:35:40:6f cha20-poly1305@o
000001b0 70:65:6e:73:73:68:2e:63:6f:6d:2c:61:65:73:31:32 penssh.com,aes12
000001c0 38:2d:63:74:72:2c:61:65:73:31:39:32:2d:63:74:72 8-ctr,aes192-ctr
000001d0 2c:61:65:73:32:35:36:2d:63:74:72:2c:61:65:73:31 ,aes256-ctr,aes1
000001e0 32:38:2d:67:63:6d:40:6f:70:65:6e:73:73:68:2e:63 28-gcm@openssh.c
000001f0 6f:6d:2c:61:65:73:32:35:36:2d:67:63:6d:40:6f:70 om,aes256-gcm@op
00000200 65:6e:73:73:68:2e:63:6f:6d:2c:61:65:73:31:32:38 enssh.com,aes128
00000210 2d:63:62:63:2c:61:65:73:31:39:32:2d:63:62:63:2c -cbc,aes192-cbc,
00000220 61:65:73:32:35:36:2d:63:62:63:2c:62:6c:6f:77:66 aes256-cbc,blowf
00000230 69:73:68:2d:63:62:63:2c:63:61:73:74:31:32:38:2d ish-cbc,cast128-
00000240 63:62:63:2c:33:64:65:73:2d:63:62:63:00:00:00:af cbc,3des-cbc....
00000250 63:68:61:63:68:61:32:30:2d:70:6f:6c:79:31:33:30 chacha20-poly130
00000260 35:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:61:65 5@openssh.com,ae
00000270 73:31:32:38:2d:63:74:72:2c:61:65:73:31:39:32:2d s128-ctr,aes192-
00000280 63:74:72:2c:61:65:73:32:35:36:2d:63:74:72:2c:61 ctr,aes256-ctr,a
00000290 65:73:31:32:38:2d:67:63:6d:40:6f:70:65:6e:73:73 es128-gcm@openss
000002a0 68:2e:63:6f:6d:2c:61:65:73:32:35:36:2d:67:63:6d h.com,aes256-gcm
000002b0 40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:61:65:73 @openssh.com,aes
000002c0 31:32:38:2d:63:62:63:2c:61:65:73:31:39:32:2d:63 128-cbc,aes192-c
000002d0 62:63:2c:61:65:73:32:35:36:2d:63:62:63:2c:62:6c bc,aes256-cbc,bl
000002e0 6f:77:66:69:73:68:2d:63:62:63:2c:63:61:73:74:31 owfish-cbc,cast1
000002f0 32:38:2d:63:62:63:2c:33:64:65:73:2d:63:62:63:00 28-cbc,3des-cbc.
00000300 00:00:d5:75:6d:61:63:2d:36:34:2d:65:74:6d:40:6f ...umac-64-etm@o
00000310 70:65:6e:73:73:68:2e:63:6f:6d:2c:75:6d:61:63:2d penssh.com,umac-
00000320 31:32:38:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e 128-etm@openssh.
00000330 63:6f:6d:2c:68:6d:61:63:2d:73:68:61:32:2d:32:35 com,hmac-sha2-25
00000340 36:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f 6-etm@openssh.co
00000350 6d:2c:68:6d:61:63:2d:73:68:61:32:2d:35:31:32:2d m,hmac-sha2-512-
00000360 65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c etm@openssh.com,
00000370 68:6d:61:63:2d:73:68:61:31:2d:65:74:6d:40:6f:70 hmac-sha1-etm@op
00000380 65:6e:73:73:68:2e:63:6f:6d:2c:75:6d:61:63:2d:36 enssh.com,umac-6
00000390 34:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:75:6d 4@openssh.com,um
000003a0 61:63:2d:31:32:38:40:6f:70:65:6e:73:73:68:2e:63 ac-128@openssh.c
000003b0 6f:6d:2c:68:6d:61:63:2d:73:68:61:32:2d:32:35:36 om,hmac-sha2-256
000003c0 2c:68:6d:61:63:2d:73:68:61:32:2d:35:31:32:2c:68 ,hmac-sha2-512,h
000003d0 6d:61:63:2d:73:68:61:31:00:00:00:d5:75:6d:61:63 mac-sha1....umac
000003e0 2d:36:34:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e -64-etm@openssh.
000003f0 63:6f:6d:2c:75:6d:61:63:2d:31:32:38:2d:65:74:6d com,umac-128-etm
00000400 40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61 @openssh.com,hma
00000410 63:2d:73:68:61:32:2d:32:35:36:2d:65:74:6d:40:6f c-sha2-256-etm@o
00000420 70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d penssh.com,hmac-
00000430 73:68:61:32:2d:35:31:32:2d:65:74:6d:40:6f:70:65 sha2-512-etm@ope
00000440 6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d:73:68 nssh.com,hmac-sh
00000450 61:31:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63 a1-etm@openssh.c
00000460 6f:6d:2c:75:6d:61:63:2d:36:34:40:6f:70:65:6e:73 om,umac-64@opens
00000470 73:68:2e:63:6f:6d:2c:75:6d:61:63:2d:31:32:38:40 sh.com,umac-128@
00000480 6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63 openssh.com,hmac
00000490 2d:73:68:61:32:2d:32:35:36:2c:68:6d:61:63:2d:73 -sha2-256,hmac-s
000004a0 68:61:32:2d:35:31:32:2c:68:6d:61:63:2d:73:68:61 ha2-512,hmac-sha
000004b0 31:00:00:00:15:6e:6f:6e:65:2c:7a:6c:69:62:40:6f 1....none,zlib@o
000004c0 70:65:6e:73:73:68:2e:63:6f:6d:00:00:00:15:6e:6f penssh.com....no
000004d0 6e:65:2c:7a:6c:69:62:40:6f:70:65:6e:73:73:68:2e ne,zlib@openssh.
000004e0 63:6f:6d:00:00:00:00:00:00:00:00:00:00:00:00:00 com.............
编辑:解决方案:使用phpseclib 2.0.3版本后问题解决了:)
最佳答案
对于 phpseclib,问题在于 phpseclib 根本不向服务器提供任何密码。一定是由于您这边的 phpseclib 配置错误造成的。
确保在代码开头设置包含路径。例如,如果您在 phpseclib
子文件夹中有 phpseclib,请使用::
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
关于php - 通过 private.key 连接到 SFTP 服务器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54035498/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!