Я только что установил VirtualBox и Vagrant на свой компьютер и инициализировал коробку ubuntu / bento-16.04. Я добавил нового пользователя рядом с бродячим пользователем, и я сгенерировал и скопировал открытый ключ на сервере в файле с именем author_keys. Я также исключил возможность проверки подлинности с помощью ключевого слова.
Проблема в том, что я могу подключиться к серверу только в том случае, если команда ssh предоставит полный путь к моему личному ключу (расположенному на диске C моего компьютера) под флагом -i.
Если попытаться подключиться только с помощью ssh -p 2222 lucian @ localhost , я получил следующее сообщение: отказано в доступе (открытый ключ)
Есть ли способ? я не могу подключиться по ssh без указания полного пути к закрытому ключу, расположенному на моем компьютере?
У меня сложилось впечатление, что сервер не знает о местонахождении закрытого ключа.
Я перечитал предыдущие темы, связанные с этой проблемой, но я могу выяснить, что я должен сделать, чтобы ssh-agent автоматически предоставил серверу закрытый ключ.
Спасибо!
Я решил эту проблему, создав файл конфигурации, хранящийся на локальном компьютере ( ~ / .ssh / config ) со следующим содержимым
Host myhost
HostName 192.168.10.10
User username
IdentityFile /path/to/identity file
IdentitiesOnly yes
где
myhost
- любое имя, которое вы решите использовать вместе с командой ssh для подключения к серверу HostName
- IP-адрес, установленный в Vagrantfile для частной сети user
- имя нового пользователя, созданного на уровне сервера. IdentityFile
- путь к приватному ключу, хранящемуся локально (открытый ключ хранится на сервере в файле авторизованных ключах). ) После этого я могу подключиться к серверу из vagrant просто с помощью команды ssh myhost .
Без редактирования файлов вы можете использовать ssh-add yourkeyfile
, но перезагрузка не переживет.
Чтобы настроить его как постоянную настройку, вы можете создать или отредактировать следующий файл
nano /home/yourusername/.ssh/config
Добавить следующую запись
Host serverIP/FQDN
IdentityFile /home/yourusername/.ssh/yourkeyfile (or other path)
Теперь каждый раз, когда вы подключиться к этому конкретному хосту, он будет использовать этот файл.
Вы также можете добавить номер порта и имя пользователя в вышеупомянутой конфигурации, так что вам нужно только набрать ssh remotehostname
для подключения.
Для этого добавьте
User remote_username
Port remote_port#