Jak mogę sprawdzić, czy katalog "xyz" istnieje na zdalnym serwerze SSH przy użyciu PHP-SSH2?Sprawdź katalog zdalny za pomocą PHP SSH2
Odpowiedz
Można użyć file_exists używając sftp poprzedzając 'ssh2.sftp: //'
na przykład z Ustanowiony połączenia można:
$sftp = ssh2_sftp($connection);
$fileExists = file_exists('ssh2.sftp://' . $sftp . '/home/marco');
zakładając jest serwer Linux
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$cmd = 'if test -d "/YOUR_DIRECTORY"; then echo 1; fi';
$stream = ssh2_exec($connection, $cmd);
Polecam porzucenie PHP SSH2 zamiast phpseclib, a pure PHP SSH implementation.
Między innymi, API PHP SSH2 jest do bani. Klucze prywatne muszą być zapisane w systemie plików do załadowania, podczas gdy phpseclib wszystko, co potrzebne, to ciągi. Możesz pobrać klucz z $ _POST bez konieczności zrzucania go do systemu plików, tak jak wymaga tego libssh2. Libssh2 wymaga oddzielnego pliku dla publickey, który jest nieaktywny, ponieważ klucz prywatny zawiera klucz publiczny.
ssh2_exec(), z biblioteki libssh2, zwraca również kody kolorów ANSI i czasami nigdy nie zwraca wyników, a czasami robi (jest niespójne).
Wreszcie phpseclib to just plain faster.
'phpseclib' nie jest szybszy, jeśli chodzi o auth z kluczem prywatnym. Użycie przyzwoitej siły klawisza może spowodować, że połączenia będą trwały ponad 10 sekund. 'klucz prywatny zawiera klucz publiczny', to jest złe. Nie zmienia to faktu, że klucz publiczny nie jest wymagany dla ssh. Nie podoba mi się ssh2 limited key-as-filepath, ale nie szkodzi to bezpieczeństwu modułu i może być łatwo zawinięte za pomocą funkcji do utworzenia pliku tymczasowego. 'phpseclib' jest świetny, jeśli nie zależy Ci na szybkości lub wykorzystaniu procesora, ale powiedziałbym, że jako osoba, która użyła obu tak szeroko,' ssh2' jest znacznie szybsza i bezbłędna. –
phpseclib miał aktualizację kilka miesięcy temu, która powinna przyspieszyć autoryzację klucza prywatnego. Szczegółowe informacje można znaleźć na stronie http://phpseclib.sourceforge.net/math/intro.html. – neubert
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = file_exists("ssh2.sftp://$sftp/path/to/file");
?>
Aby sprawdzić, czy pilot ścieżka jest folder lub plik przy użyciu PHP_SSH2
$path="/tmp";
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$isdir = is_dir("ssh2.sftp://$sftp/$path");
if ($isdir ==true) {
echo "The Remote Folder is a Directory".PHP_EOL;
}
else {
$isfile = file_exists("ssh2.sftp://$sftp/$path");
if ($isfile == true) {
echo "The Remote Path is a File".PHP_EOL;
}
}
- 1. Biblioteka SSH2 dla ios
- 2. Sprawdź przepełnienie za pomocą Z3
- 3. Sprawdź, czy katalog jest pusty
- 4. Węzeł - Sprawdź, czy istnieje katalog
- 5. Apache Commons FTPClient, sprawdź, czy istnieje katalog zdalny i uzyskaj uprawnienia (linux - unix)
- 6. php: sprawdź, czy ścieżka istnieje?
- 7. W tym katalog za pomocą Pyinstaller
- 8. Jak zamontować katalog sieciowy za pomocą pythona?
- 9. Jak zmienić katalog za pomocą Pythona pathlib
- 10. Sprawdź ciasteczko za pomocą Python Flask
- 11. Sprawdź rozmiar kolekcji za pomocą JSTL
- 12. Android - Sprawdź ikonę za pomocą rysowania xml
- 13. Sprawdź połączenie internetowe za pomocą iOS SDK
- 14. Sprawdź nagłówki żądań za pomocą ServiceStack
- 15. Sprawdź długość pola za pomocą awk
- 16. sprawdź składnię XML za pomocą xmllint
- 17. Sprawdź katalogi w języku C# za pomocą Linq
- 18. Sprawdź, czy katalog istnieje na serwerze FTP
- 19. Sprawdź, czy katalog istnieje w ~/używając Perla
- 20. Jak utworzyć nowy zdalny oddział za pomocą EGit?
- 21. jak załadować plik na serwer zdalny http za pomocą java?
- 22. Jak mogę otworzyć zdalny plik przez HTTP za pomocą Emacsa?
- 23. Jak mogę uzyskać katalog Uploadów PHP?
- 24. Porównanie łańcuchów PHP za pomocą '=='
- 25. formatowania sznurkiem za pomocą php
- 26. w tym zdalny plik w PHP
- 27. PHP dostaje zdalny plik typu mime
- 28. Sprawdź błędy składni PHP?
- 29. Sprawdź poprawność gravatar (PHP)
- 30. git Push za pomocą PuTTY na Windows nie powiedzie się (śmiertelne: Zdalny koniec rozłączył się niespodziewanie)
Sprawdź instrukcję tutaj http://www.php.net/manual/en/function.ssh2-exec. php – powtac
i klucze wymiany lub musisz podać nazwę użytkownika/hasło do skryptu php do pracy. Jeśli wymieniasz klucze, weź pod uwagę, że musisz to zrobić z użytkownikiem apache, jeśli wykonasz skrypt za pomocą apache. –
Nie mówię o ustanowieniu połączenia ssh. Muszę sprawdzić konkretny katalog, który może istnieć na serwerze po połączeniu. – World