(Я работаю на виртуальной машине на своем локальном компьютере, поэтому безопасность сейчас не так важна. Я бы не стал делать это на открытой машине).
Я работаю над сложной сборкой и провожу немало времени, просматривая файлы конфигурации и файлы журналов.
Поэтому я хочу запускать 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