Могу ли я использовать свой «локальный» открытый ключ для входа в систему по ssh с одного сервера на другой (vServer) и Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Могу ли я использовать свой «локальный» открытый ключ для входа в систему по ssh с одного сервера на другой (vServer) и

Сообщение Anonymous »


Поскольку я новичок в этом, я думаю, что просто что-то не понимаю, но пока не могу найти в Интернете никакого работающего решения. Моя установка следующая: У меня есть локальный компьютер, на котором я работаю, общий сервер с функцией SSH (в Hetzner) и облачный vServer (также в Hetzner).

Я использую ssh-клиент bitvise для подключения к моему vServer с помощью открытого ключа, который я сгенерировал с помощью этого инструмента на своем компьютере. Это работает так, как и ожидалось.

Теперь я хочу использовать тот же метод (и тот же ключ) для подключения моего общего сервера к моему vserver — это не работает.

Поэтому я использую метод PHP ssh2_connect. Вот код, который я использую для этого (это комментарий php.net к функции ssh2_connect, но уменьшенный):

$ssh_host = '[vServer_ip]'; // SSH-порт $ssh_port = 22; // Отпечаток SSH-сервера $ssh_server_fp = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Имя пользователя SSH $ssh_auth_user = '[vServer_username]'; // Файл открытого ключа SSH $ssh_auth_pub = '/usr/www/users/[my_username]/.ssh/profile1.pub'; // Файл ключа SSH $ssh_auth_priv = '/usr/www/users/[my_username]/.ssh/profile1'; // Парольная фраза SSH-ключа (нуль == нет парольной фразы) $ssh_auth_pass = '[passphrase_from_my_public_key]'; function Connect($ssh_host, $ssh_port, $ssh_server_fp, $ssh_auth_user, $ssh_auth_pub, $ssh_auth_priv, $ssh_auth_pass) { if (!($connection = ssh2_connect($ssh_host, $ssh_port))) { выдать новое исключение («Невозможно подключиться к серверу»); } $fingerprint = ssh2_fingerprint($connection, SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX); if (strcmp($ssh_server_fp, $fingerprint) !== 0) { throw new Exception('Невозможно проверить личность сервера!'); } if (!ssh2_auth_pubkey_file($connection, $ssh_auth_user, $ssh_auth_pub, $ssh_auth_priv, $ssh_auth_pass)) { throw new Exception('Аутентификация отклонена сервером'); } вернуть $соединение; } $connection = Connect($ssh_host, $ssh_port, $connection, $ssh_server_fp, $ssh_auth_user, $ssh_auth_pub, $ssh_auth_priv, $ssh_auth_pass); var_dump ($ соединение); Я получаю сообщение об ошибке «Неперехваченное исключение: невозможно проверить личность сервера!»

Мне не хватает содержимого переменной $ssh_server_fp, так как я не знаю, что туда поместить. profile1.pub — это открытый ключ, который я использовал на своем локальном компьютере, а profile1 — закрытый ключ для него.

Открытый ключ был сгенерирован с помощью шифрования ecdsa-sha2-nistp521 и экспортирован с помощью метода открытого ssh. Таким образом, содержимое открытых ключей начинается с ecdsa-sha2-nistp521, а секретный ключ с ----- BEGIN OPENSSH PRIVATE KEY -----
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»