Я пытаюсь подключиться к удаленному серверу, используя SSH Key .Я генерирую пару ключей 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
]);
Любая помощь будет принята с благодарностью.Ключи генерируются наверняка, потому что я вижу их в базе данных.