Я бы разместил это в качестве комментария, но это, вероятно, было бы слишком длинно. Я просто хотел добавить, что ssh-copy-id
пытается отправить открытый ключ из местоположения /.ssh
внутри вашей папки $HOME
.
Если вы пытаетесь ssh
войти в систему с правами root с открытым ключом, (сохраните комментарии, связанные с безопасностью, -), ssh-copy-id
могут пытаться войти с неправильным открытым ключом, если ваш $HOME
переменная имеет значение, отличное от /root
(, например домашний каталог вашего обычного пользователя ), поэтому пользователь root получит запрос, поскольку открытый ключ root не установлен в удаленной системе.
Вы можете использовать следующую строку -, чтобы указать точный открытый ключ:
pub="$(cat /root/.ssh/id_rsa.pub)"; ssh user@remotehost "echo $pub >>.ssh/authorized_keys; chmod 700.ssh; chmod 600.ssh/authorized_keys"
Я сталкивался с таким сценарием несколько раз (, в том числе сегодня утром ), и решил внести свои 2 цента на случай, если кто-то окажется в такой же ситуации.
Задайте функцию завершения для cdp
. Условно функция называется _cdp
. Вы можете определить его в своем .zshrc
и явно назначить с помощью compdef
.
_cdp () {
… # code goes here
}
compdef _cdp cdp
В качестве альтернативы поместите код завершения в файл в вашем $fpath
с именем _cdp
с директивой автозагрузки завершения .
#compdef cdp
… # code goes here
Для заполнения каталогов используйте_files -/
. Чтобы завершить каталоги относительно другого места из текущего каталога, используйте опцию -W
. Поскольку эта функция принимает только один аргумент, завершает только первый аргумент .
_cdp () {
((CURRENT == 2)) &&
_files -/ -W /mnt/c/Users/Mark/PhpstormProjects
}
Вместо этой функции вы можете добавить или не добавить каталог вcdpath
.
cdpath+=/mnt/c/Users/Mark/PhpstormProjects