Задать вопрос
JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Как скопировать SSH ключ на удалённую Ubuntu 18.04 при помощи ssh-copy-id?

Здравствуйте!
Давно не программил, т.к. сменил профиль деятельности. Но понадобилось запустить один из проектов 4-5 летней давности. Поэтому купил VPS на бегет.
Установил сервер Ubuntu 18
Подключился через ssh предоставленным пользователем root
Создал пользователя ws. Сменил ему пароль. Добавил в псевдогруппу sudo.
Проверил подключение к серверу пользователем ws с паролем через ssh. Подключается.
У себя на сервере пишу команду:
ssh-copy-id -i /home/max/.ssh/ws_key ws@45.146.164.232
(пробовал и так: ssh-copy-id -i /home/max/.ssh/ws_key.pub ws@45.146.164.232)
выдаёт:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/max/.ssh/ws_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ws@45.146.164.232's password:
client_loop: send disconnect: Broken pipe

я подумал возможно не может что-то там создать. Полез в свои старые шпаргалки. Нашёл. Подключился к серверу снова пользовалем ws через пароль по ssh.

Создал папку: mkdir ~/.ssh
Дал права: chmod 0700 ~/.ssh
Создал файл: touch ~/.ssh/authorized_keys
Дал и ему права: chmod 0644 ~/.ssh/authorized_keys

Отключился. Снова попробовал со своего компа скопировать ssh ключ. И снова результат неудовлетворительный.

ssh-copy-id -i /home/max/.ssh/ws_key ws@45.146.164.232
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/max/.ssh/ws_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ws@45.146.164.232's password:
client_loop: send disconnect: Broken pipe

Помогите. Чего не хватает? Или может я что-то делаю не так? За ранее спасибо.

p.s. я помню у меня когда-то что-то подбное было. Ключ не копировался и Ansible не работал. Я ключ скопировал вручную в файл authorized_keys, но Ansible так же отказывался работать. Потом я что-то сделал и у меня и ssh-copy-id заработал и Ansible тоже. Всё перерыл и не могу найти в чём причина. Только хостер тогда тругой был.
  • Вопрос задан
  • 342 просмотра
Подписаться 1 Средний 6 комментариев
Пригласить эксперта
Ответы на вопрос 3
@vitaly_il1
DevOps Consulting
На удаленной машине:
1) chmod 0600 ~/.ssh/authorized_keys
2) открыть ~/.ssh/authorized_keys в редакторе и добавить публичный ключ
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
1. нужно залогиниться на удаленный сервер, и посмотреть настройки sshd в /etc/ssh (скорее всего /etc/ssh/sshd_config)
Возможно правильный файл будет authorized_keys2, например

2. ssh-copy-id -i /home/max/.ssh/ws_key.pub ws@45.146.164.232
тут нужно путь к приватному ключу, а не публичному

chmod 0600 на authorized_keys не обязательно. Это обязательно для приватных ключей, не для публичных
Ответ написан
Комментировать
@Zerg89
Хмм у beget подключение к серверу настраивается вручную и имя совпадает с именем пользователя в консоли vps, может в консоли надо пользователя прописать а то он улетает в никуда если пользователя нет в базе маршрутизации nginx он не понимает на какой внутренний сервер это надо завернуть
Ps хотя бред он бы и просто по ssh тогдабы не заходил
Pss Попробуй на сервере beget sshd.conf поправить ClientAliveInterval в секундах вроде
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы