有沒有辦法通過使用phpseclib或任何其他方法連接sftp與私鑰和ftp密碼。phpseclib sftp連接私鑰和密碼
回答
SFTP服務器同時使用密碼和公鑰認證是很少見的。我的猜測是,你最可能擁有的是密碼保護的私鑰。如果這樣你就可以登錄正是如此:
<?php
include('Net/SFTP.php');
include('Crypt/RSA.php');
$sftp = new Net_SFTP('www.domain.tld');
$key = new Crypt_RSA();
$key->setPassword('whatever');
$key->loadKey(file_get_contents('privatekey'));
if (!$sftp->login('username', $key)) {
exit('Login Failed');
}
print_r($sftp->nlist());
?>
如果確實是你的服務器確實是做以下兩個應該工作:
<?php
include('Net/SFTP.php');
include('Crypt/RSA.php');
$sftp = new Net_SFTP('www.domain.tld');
$key = new Crypt_RSA();
$key->setPassword('whatever');
$key->loadKey(file_get_contents('privatekey'));
if (!$sftp->login('username', $key) && !$sftp->login('username', 'password')) {
exit('Login Failed');
}
print_r($sftp->nlist());
?>
它引發登錄失敗,我可以通過命令行和filezilla連接憑證。 – 2013-04-03 20:49:40
哪一個失敗?我發佈了兩個。如果你沒有嘗試兩個都嘗試。如果你確實......你能爲我的日誌找到兩個嗎? http://phpseclib.sourceforge.net/ssh/examples.html#logging演示如何啓用日誌記錄。謝謝! – neubert 2013-04-03 21:05:27
我需要使用第二個選項co'z客戶端給我私鑰,私鑰密碼和ftp密碼。它沒有返回任何日誌。 – 2013-04-03 21:21:06
我想說的只是自己嘗試密碼身份驗證。
以下是每個日誌發生的情況。
phpseclib發送一個SSH_MSG_SERVICE_REQUEST到服務器,有效地說:「嘿 - 我想auth - 那好嗎?」
服務器響應一個SSH_MSG_SERVICE_ACCEPT,有效地說「肯定 - 給我你得到什麼!」
phpseclib然後發送一個SSH_MSG_USERAUTH_REQUEST與對應於您的私鑰的公鑰,有效地說:「好的 - 讓我們用我的私鑰授權 - 確保你會接受它......這是你的白公鑰名單?」
服務器然後迴應一個NET_SSH2_MSG_USERAUTH_PK_OK消息,有效地說,「呀 - 我們沒問題 - 請使用它現在簽署服務器標識符」。
phpseclib這樣做,然後服務器就像「沒關係!我只記得 - 我唯一的身份驗證類型是基於密碼的身份驗證!」
phpseclib去「meh」哈哈,然後發送另一個SSH_MSG_SERVICE_REQUEST,再次請求授權,服務器就像「什麼!?你爲什麼要求授權!?」
好像phpseclib也許不應該被髮送的是第二SSH_MSG_SERVICE_REQUEST消息 - 它應該去直接到SSH_MSG_USERAUTH_REQUEST - 但可惜它目前還沒有做到這一點。我會嘗試更新代碼庫來做到這一點,並向作者提交一個pull請求。
謝謝!
這是很好的解釋。所以解決方案是修改NET庫?。非常感謝你幫助解決這個問題。 – 2013-04-18 19:20:50
我會先看看是否替換'if(!$ sftp-> login('********',$ rsa)&&!$ sftp-> login('********', '********')){'with'if(!$ sftp-> login('********','********')){'訣竅。 PHP庫應該可能會改變,但在你的情況下,我認爲你可以讓它與lib一起工作。 – neubert 2013-04-18 19:25:05
這並沒有工作客戶端服務器總是期待密鑰和密碼。在答案中查看我的日誌。 – 2013-04-18 19:35:56
- 1. 使用PHP和私鑰連接到SFTP
- 2. 連接到MQ使用安全密鑰(公鑰和私鑰)
- 3. 使用libssh2連接到需要密鑰和密碼的SFTP服務器
- 4. OpenSSH for Windows與私鑰和密碼的連接
- 5. 解密需要私鑰和密碼
- 6. 通過SFTP和SSH密鑰的LFTP連接問題
- 7. 使用私鑰代替密碼從sftp下載文件
- 8. Git ssh私鑰密碼
- 9. Ruby Net的公鑰/私鑰驗證:: SFTP
- 10. sftp vs ssh公鑰/私鑰(初學者)
- 11. 使用密鑰和密碼自動執行SFTP登錄
- 12. Aptana SFTP密鑰交換
- 13. 使用私有RSA密鑰在libcurl中的SFTP身份驗證
- 14. phpseclib OpenSSH或PuTTYgen密鑰生成
- 15. 用RSA公鑰和私鑰加密和解密一個SecretKey
- 16. Bouncycastle加密私鑰PEM輸出:RSA私鑰與私鑰
- 17. 帶私鑰認證的SFTP cURL
- 18. NetBeans中SFTP的私鑰文件
- 19. SFTP與私鑰,沒有用戶名
- 20. notepad ++無法使用SFTP連接 - 驗證時出錯:私鑰文件無效
- 21. 遠程存儲密碼保護私鑰
- 22. JWT令牌 - 密碼爲私鑰
- 23. 如何與RSA公鑰/私鑰和GnuTLS形成TLS連接?
- 24. 從服務器到另一個沒有私鑰密碼的SSH連接
- 25. DSN連接和密碼與@
- 26. Phpseclib連接MYSQL服務器
- 27. SFTP連接
- 28. 密鑰庫密鑰和私有密鑰...講解深入淺出,請
- 29. 密鑰長度問題:phpseclib上的AES加密和PyCrypto上的解密
- 30. 如何自動輸入帶密碼的ssh私鑰密碼
您能向我們展示更多關於您的具體情況的信息,或者展示您嘗試自己找到答案的資源,以及爲什麼這些答案不適合您?試試這個問題:http://stackoverflow.com/questions/13806699/phpseclib-can-i-connect-using-username-key-and-password-not-a-key-password – 2013-04-03 20:13:00
可能重複的[phpseclib - Can我連接使用用戶名,密鑰和密碼(不是密鑰密碼)](http://stackoverflow.com/questions/13806699/phpseclib-can-i-connect-using-username-key-and-password-nota-a-鍵 - 密碼) – 2017-03-31 20:55:35