Я искал решение, как использовать php для установления соединения с удаленным сервером и выполнения команд. Исследования привлекли мое внимание к двум решениям; phpseclib и ssh2. Я постараюсь, чтобы мои вопросы не превратили это в сравнительный пост. Насколько я могу судить, они оба являются широко используемыми решениями. ssh2 — это расширение PHP, а phpseclib — это чистая библиотека PHP. Кажется, вы также можете использовать phpseclib в сочетании с ssh2. Я бы предпочел избежать установки расширения, поэтому я более склонен использовать phpseclib. Однако у меня есть некоторые опасения.
имеет прямую документацию по php означает ли это, что это лучшее решение для использования?
Большинству сообщений, которые я вижу относительно phpseclib, уже несколько лет. старый, это все еще «современное» решение?
(находится здесь) говорит, что он был создан для совместимости с php 4, а версия 2.0 ориентирована на php 5. Является ли это приемлемым решением для тех, кто работает с php 7?
Вот пример использования ключа RSA для установки ssh-соединения с phpseclib 2.0
Код: Выделить всё
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Net\SSH2;
use phpseclib\Crypt\RSA;
$ssh = new SSH2('www.domain.tld');
$key = new RSA();
$key->loadKey(file_get_contents('privatekey'));
if (!$ssh->login('username', $key)) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
Я все еще новичок в ssh, но если я правильно понимаю вышеизложенное, то при условии, что удаленный сервер имеет ключ .pub, я могу просто предоставить свой соединение с моим локальным секретным ключом (и пользователем), и я смогу подключиться? Должен ли открытый ключ находиться где-то конкретно?
Подробнее здесь:
https://stackoverflow.com/questions/626 ... b-and-ssh2