LINUX.ORG.RU

Как поменять публичный ключ ssh

 


0

1

Добрый день! Помогите пожалуйста, мне нужно поменять публичный ssh ключ на сервере для подключения к нему с через putty. Но проблема в том, что сервер развернут на VMware vCloud Director, и на сервере не работает буфер обмена,и нет возможности просто скопировать и вставить новый ключ ssh в файл authorized_keys. Подскажите пожалуйста, каким образом можно решить ситуацию и поменять ключ?


скопируй ключ с другого сервера (твоей рабочей станции) на проблемный через scp.

Либо поменяй временно настройки sshd на доступ по паролю, залей ключ, потом верни настройки обратно.

MirandaUser2
()
Ответ на: комментарий от anonymous

ключ набрать.

ТС не ищет лёгких путей. Просто записать новый ключ в authorized_keys ему что-то мешает. Имхо, при таком подходе, предложение @cobold должно удовлетворить интересы ТС.

QsUPt7S ★★★
()
Ответ на: комментарий от futurama

как я понял, у ТС нет сейчас ssh доступа на проблемный сервер (поэтому и ключ меняет), а только через vmware консольку. Ему надо подключаться к другому серверу (куда есть ssh доступ) и копировать через scp.

MirandaUser2
()
Последнее исправление: MirandaUser2 (всего исправлений: 2)
Ответ на: комментарий от MirandaUser2

через vmware консольку

Набрать руками или написать генератор нажатий клавиш, используя xdotool или соответствующий аналог для оконной системы.

И, вообще, вроде, копипаста работает.

anonymous
()
Ответ на: комментарий от MirandaUser2

как я понял, у ТС нет сейчас ssh доступа на проблемный сервер (поэтому и ключ меняет), а только через vmware консольку.

Если есть задача любым способом избежать ручного набора ключа, то можно было бы даже поднять ssh-сервер, http-сервер (последний легко запускается в TotalCommander) или rsyncd на локальной Винде, затем зайти с сервера, и скачать файл ключа.

Наконец, если заморачиваться, учитывая, что ТС под Виндой, на которой прекрасно имитируются нажатия клавиш, то можно было бы скормить ключ любой программке умеющей в имитацию. Например KeePass, или программы тонкой настройки клавиатур.

Но, имхо, в этой ситуации самым простым было бы создать ключ типа ed25519, и ручками набрать несчастных 80 символов.

QsUPt7S ★★★
()

Выкладываешь на сайт с пастой. На сервер качаешь wget-ом, после чего любым удобным текстовым редактором отрезаешь лишний html.

Aceler ★★★★★
()

А vmware vcloud — это где консолька прямо в браузере, да? Там есть буфер обмена, просто комбинация клавиш типа Ctrl+Shift+Insert, но это не точно, почитай документацию.

Aceler ★★★★★
()

Сервер:

nc -l -p 16382 | tee /root/.ssh/authorized_keys

Клиент:

cat .ssh/id_rsa.pub | nc <публичный IP сервера> 16382

Вместо nc на клиенте можно использовать тот же putty по telnet и вставить сконвертированный ключ руками из буфера.

anonymous
()
Ответ на: комментарий от anonymous

nc -l -p 16382 | tee /root/.ssh/authorized_keys

nc -l -p 16382 | tee -a /root/.ssh/authorized_keys

у нас в Хогвартсе, за такое бьют в лицо, а так вариант конечно хороший

если порты не перекрыты и есть интернеты

$ PUB_KEY_URL=$(cat ~/.ssh/key.pub | nc termbin.com 9999) ssh remoteserver sh -c "curl ${PUB_KEY_URL} | tee -a ~/.ssh/authorized_keys"
gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 6)
Ответ на: комментарий от anonymous

Таких тупых llm в 25 году уже нет.


Способ 1: Использование существующего доступа (если он есть)

Это самый простой вариант, если он возможен:

  1. Старый ключ еще работает? Если ваш старый SSH-ключ все еще действителен и позволяет подключиться через PuTTY, просто подключитесь с его помощью.
  2. Редактирование файла: Откройте файл ~/.ssh/authorized_keys с помощью текстового редактора (например, nano или vi):
    nano ~/.ssh/authorized_keys
    
  3. Вставка нового ключа: Теперь, когда вы подключены через PuTTY, буфер обмена должен работать как обычно. Скопируйте ваш новый публичный ключ (.pub файл) и вставьте его в редактор nano (обычно правый клик мыши в PuTTY). Убедитесь, что ключ вставлен одной строкой.
  4. Удаление старого ключа (опционально): Найдите строку со старым ключом и удалите ее.
  5. Сохранение и выход: В nano нажмите Ctrl+X, затем Y (или Д в русской локали) и Enter.
  6. Проверка: Попробуйте подключиться с новым ключом в новом окне PuTTY, не закрывая старое соединение. Если новый ключ работает, старое соединение можно закрыть.

Способ 2: Временное разрешение входа по паролю (если возможно и безопасно)

Если у вас есть возможность временно включить вход по паролю для вашего пользователя (или для root, если вы можете потом переключиться на своего пользователя):

  1. Подключитесь через консоль vCloud Director.
  2. Отредактируйте конфигурацию SSHD:
    sudo nano /etc/ssh/sshd_config
    
  3. Найдите и измените (или добавьте) строки:
    • PasswordAuthentication yes (убедитесь, что это yes)
    • ChallengeResponseAuthentication no (иногда может конфликтовать, лучше выключить на время)
  4. Сохраните файл (Ctrl+X, Y, Enter).
  5. Перезапустите службу SSHD:
    sudo systemctl restart sshd
    # или
    sudo service ssh restart
    

    (Команда зависит от вашего дистрибутива Linux)

  6. Установите пароль (если его нет): Если у вашего пользователя нет пароля, установите его:
    sudo passwd ваш_пользователь
    
  7. Подключитесь через PuTTY, используя пароль.
  8. Теперь, когда вы внутри через PuTTY, выполните шаги 2-6 из Способа 1 (откройте nano, вставьте новый ключ, сохраните).
  9. ВАЖНО: После успешной настройки ключа верните изменения в /etc/ssh/sshd_config обратно (PasswordAuthentication no) и перезапустите SSHD, чтобы отключить вход по паролю из соображений безопасности.

Способ 3: Передача ключа через файл с помощью vCloud Director «Attach Media»

Это надежный способ, если у вас есть права на подключение ISO-образов или дискет к ВМ:

  1. Создайте текстовый файл: На вашем локальном компьютере создайте простой текстовый файл (например, mykey.pub) и скопируйте в него ваш новый публичный ключ. Убедитесь, что в файле нет лишних символов или переносов строк, кроме одного в конце (если он есть в оригинальном .pub файле).
  2. Создайте ISO-образ (или образ дискеты): Используйте любую программу для создания ISO-образов (например, ImgBurn, mkisofs для Linux/WSL, средства Windows) и добавьте ваш файл mykey.pub в этот образ. Назовите образ, например, key_transfer.iso.
  3. Подключите образ к ВМ: В интерфейсе vCloud Director найдите вашу ВМ, перейдите в ее свойства и найдите опцию «Insert Media» или «Attach CD/DVD». Выберите созданный вами .iso файл.
  4. Подключитесь через консоль vCloud Director.
  5. Смонтируйте образ: Создайте точку монтирования (если ее нет) и смонтируйте CD/DVD-привод:
    sudo mkdir /mnt/cdrom
    sudo mount /dev/cdrom /mnt/cdrom
    # Или может быть /dev/sr0 или другое имя устройства
    
  6. Скопируйте ключ в домашний каталог:
    cp /mnt/cdrom/mykey.pub ~/new_ssh_key.pub
    
  7. Добавьте ключ в authorized_keys:
    • Для добавления (рекомендуется сначала):
      cat ~/new_ssh_key.pub >> ~/.ssh/authorized_keys
      
    • Для полной замены (если уверены, что других ключей там быть не должно):
      mkdir -p ~/.ssh # Создать папку, если вдруг ее нет
      chmod 700 ~/.ssh
      cp ~/new_ssh_key.pub ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys
      
  8. Отмонтируйте и отключите образ:
    sudo umount /mnt/cdrom
    rm ~/new_ssh_key.pub # Удалить временный файл
    

    Затем в интерфейсе vCloud Director извлеките («Eject» или «Detach») образ носителя.

  9. Проверка: Попробуйте подключиться с новым ключом через PuTTY. Если работает, можно удалить старый ключ из authorized_keys через консоль или новое PuTTY-соединение.

Способ 4: Ручной ввод ключа (Крайний случай)

Это самый трудоемкий и подверженный ошибкам способ, но он сработает, если ничего другое недоступно:

  1. Подключитесь через консоль vCloud Director.
  2. Откройте файл:
    nano ~/.ssh/authorized_keys
    
  3. Тщательно наберите ключ: Очень аккуратно, символ за символом, наберите ваш новый публичный ключ. SSH-ключи длинные, поэтому легко ошибиться. Проверяйте каждую часть. Ключ должен быть одной строкой (редактор может визуально переносить длинные строки, но реального символа переноса строки внутри ключа быть не должно).
  4. Сохранение и выход: Ctrl+X, Y, Enter.
  5. Проверка: Попробуйте подключиться через PuTTY с новым ключом.

Важные моменты:

  • Права доступа: Убедитесь, что права на каталог .ssh и файл authorized_keys установлены правильно:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  • Владелец: Убедитесь, что владелец каталога и файла — ваш пользователь. Если вы делали что-то из-под root, используйте chown ваш_пользователь:ваша_группа -R ~/.ssh.
  • SELinux: Если на сервере используется SELinux (CentOS/RHEL/Fedora), возможно, потребуется восстановить контекст безопасности:
    restorecon -Rv ~/.ssh
    
  • Резервная копия: Перед внесением изменений неплохо бы сделать копию существующего файла authorized_keys:
    cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak
    

Начните с самых простых методов (Способ 1, если старый ключ работает). Если нет, попробуйте Способ 3 (подключение ISO), он довольно надежен. Ручной ввод (Способ 4) оставьте на крайний случай.


Но предложения @Aceler более интересные. Его пока роботы не заменят.

mamina_radost
()
Последнее исправление: mamina_radost (всего исправлений: 3)
Ответ на: комментарий от mamina_radost

Ну этот способ (через iso) очевидно приходит в голову применительно к передаче файлов на vmware vm. В случае, если порты закрыты и нельзя менять другие настройки сервера, один из немногих не требующих спец. знаний.
Просто ТС пропал, и вообще может он уже давно проблему решил, так что смысла генерировать новые способы немного.

MirandaUser2
()