无法使用Laravel 5.5中的SSH密钥连接到远程服务器?

时间:2018-05-25 12:39:54

标签: php mysql laravel ssh phpseclib

我正在尝试使用 SSH密钥连接远程服务器。我使用phpseclib 2.0生成SSH密钥对,并将密钥存储在数据库中。以下是我尝试连接的方式。

Config::set('remote.connections.production.host',$server->ip);
Config::set('remote.connections.production.username',$server->username);
Config::set('remote.connections.production.keytext',$server->meta()->where('meta_key','private_key')->first()->meta_value);

我有与我在远程服务器的~/.ssh/authorized_keys文件中使用的私钥相对应的公钥。 .ssh目录的权限为700authorized_keys的权限为600,这是完美的。

首先我认为这可能是\r\n问题,但之后我尝试在连接之前从私钥中删除所有\r\n,但我仍然得到unable to connect to remote server。我不知道问题出在哪里。我从最近两天开始都没有运气。

我认为SSH密钥一旦进入数据库就会被破坏。以下是我在数据库中生成和存储SSH密钥对的方法。

$rsa = new RSA();
$rsa->setPublicKeyFormat(RSA::PUBLIC_FORMAT_OPENSSH);
$keys = $rsa->createKey(2048);
$privateKey = $keys['privatekey'];
$publicKey = $keys['publickey'];

$server->meta()->create([
     'meta_key' => 'private_key',
     'meta_value' => $privateKey
]);

$server->meta()->create([
    'meta_key' => 'public_key',
    'meta_value' => $publicKey
]);

任何帮助将不胜感激。正在生成密钥,因为我可以在数据库中看到它。

0 个答案:

没有答案