我无法通过私钥连接到SFTP服务器。
首先,我有id_rsa.pkk文件。我使用puttygen程序加载密钥,并将其转换为open ssh private key as privatekey.pem,开始时为:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,BA05B7BC99E7A2CE
....

和publickey.pub as
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和$privatekey作为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  [email protected]
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  [email protected]
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  [email protected],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  [email protected]
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  [email protected],
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  [email protected],um
000003a0  61:63:2d:31:32:38:40:6f:70:65:6e:73:73:68:2e:63  [email protected]
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  [email protected]
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/

10-09 03:58