"/home/ci/.ssh/key"
почему только так заработало?
почему не "~/.ssh/key"
Потому что ~ раскрывается шеллом, но так как ты засунул путь в кавычки, то шелл не стал ничего раскрывать и передал именно ~/.ssh/key как аргумент к программе, в то время как без кавычек программа получает путь, еквивалентный выражению "$HOME/.ssh/key"