(Я работаю на виртуальной машине на своем локальном компьютере, поэтому безопасность сейчас не так важна. Я бы не стал делать это на открытой машине).

Я работаю над сложной сборкой и провожу немало времени, просматривая файлы конфигурации и файлы журналов.

Поэтому я хочу запускать scp вне папки vagrant от имени root, поскольку файлы журналов и файлы конфигурации имеют довольно ограничительные разрешения.

Чтобы сделать это, я хочу установить более широкий ssh, чем просто встроенный vagrant ssh который работает только в каталоге vagrant.

Шаг 1 скопируйте подходящий ключ в виртуальную машину

сделать ssh-copy-id -i <somekey> vagrant@myvm .

Хорошо, на тот момент, если я выбрал правильный ключ и он загружен в ssh-agent, теперь я могу ssh vagrant@myvm .

Шаг 2, включите это для root тоже.

(если я сделаю ssh-copy-id root , меня попросят ввести пароль, не ходи), поэтому вместо этого я скопирую авторизованные ключи.

сш в вм как бродяга.

sudo -s
cd /root #root's home
#copy vagrants authorized keys.
cp -r /vagrant/.ssh .

Это работает. т.е. Я могу ssh root@myvm

Что не помогло, так это то, что я попытался заменить копию на ln -s /home/vagrant/.ssh .ssh когда вошел в систему как root.

замените ln -s на cp -r и все снова будет работать.

Теперь я вижу причину, почему это было бы хорошей безопасностью - любой, имеющий учетные данные пользователя vagrant, мог вставить новый ключ в vagrant и волшебным образом открыть его также для root, не выполняя никаких действий при входе в систему как root.

Но sshd-may-ssh-directory-be-symlinked говорит, что символические ссылки .ssh в порядке. Там на самом деле нет ответа, просто комментарий.

Итак, а) символическая ссылка .сш ок? б) но не в порядке для root?

env: macos Sierra host, Ubuntu 16.04 guest, Vagrant 2.0.0

0