我正在尝试使用ssh密钥连接远程服务器。我正在使用生成ssh密钥对 phpseclib 2.0
我把钥匙储存在数据库里。以下是我如何尝试连接。
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
目录为 700
和权限 authorized_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
]);
任何帮助都将不胜感激。密钥正在生成,因为我可以在数据库中看到它。
暂无答案!
目前还没有任何答案,快来回答吧!