visionmedia / deploy

Minimalistic deployment shell script
1.15k stars 137 forks source link

Tilde expansion fails for ssh key value #18

Open mehulved opened 11 years ago

mehulved commented 11 years ago

I tried using tilde for my ssh key path. But that fails to find the key. I ensured that the path was correct. But, when I replaced the tilde with user homedir path, it worked fine. Is the tilde expansion disabled or does it expand to root path? I did execute the script as own user. And there's the ssh key in that user's path.

mehulved commented 11 years ago

What doesn't work

$ deploy development setup
Warning: Identity file ~/.ssh/id_dsa.pub not accessible: No such file or directory.
$ cat deploy.conf 
[development]
key ~/.ssh/id_dsa.pub
user mehul

What works

$ cat deploy.conf 
[development]
key /home/mehul/.ssh/id_dsa.pub
user mehul
$ deploy development setup
Enter passphrase for key '/home/mehul/.ssh/id_dsa.pub': 
jmervine commented 11 years ago

I see this issue over and over again, when script ssh commands. I'd love to hear an explanation why. Simple avoidance is to replace '~' with "$HOME" when parsing configuration.

hovsater commented 11 years ago

This is how bash works. As soon as a tilde has been quoted, i.e., '~', it will not be expanded. Usually one bypasses this by using $HOME instead.

One can expand tilde by using eval, but usually one want to avoid this. See http://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html for more information.

micky2be commented 8 years ago

Is there a solution for that? Both ~ and $HOME are not working

micky2be commented 8 years ago

Nothing?

2hu12 commented 8 years ago

@micky2be I created a pull request of pm2-deploy to solve the same problem, if you're interested. https://github.com/Unitech/pm2-deploy/pull/81