好吧,奇怪的问题。我有 SSH 转发与 Vagrant 一起使用。但我试图在使用 Ansible 作为 Vagrant 配置程序时让它工作。
我准确地找到了 Ansible 正在执行的内容,并亲自从命令行尝试了它,果然,它也失败了。
[/common/picsolve-ansible/u12.04%]ssh -o HostName=127.0.0.1 \
-o User=vagrant -o Port=2222 -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no -o PasswordAuthentication=no \
-o IdentityFile=/Users/bryanhunt/.vagrant.d/insecure_private_key \
-o IdentitiesOnly=yes -o LogLevel=FATAL \
-o ForwardAgent=yes "/bin/sh \
-c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker' "
Permission denied (publickey,password).
但是当我运行 vagrant ssh 时,代理转发工作正常,并且我可以签出 R/W 我的 github 项目。
[/common/picsolve-ansible/u12.04%]vagrant ssh
vagrant@vagrant-ubuntu-precise-64:~$ /bin/sh -c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker'
Cloning into '/home/vagrant/poc_docker'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 18 (delta 4), reused 0 (delta 0)
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (4/4), done.
vagrant@vagrant-ubuntu-precise-64:~$
有谁知道它是如何工作的吗?
Update:
借助于ps awux
我确定了 Vagrant 执行的确切命令。
我复制了它并且 git checkout 工作了。
ssh [email protected] /cdn-cgi/l/email-protection -p 2222 \
-o Compression=yes \
-o StrictHostKeyChecking=no \
-o LogLevel=FATAL \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-o IdentitiesOnly=yes \
-i /Users/bryanhunt/.vagrant.d/insecure_private_key \
-o ForwardAgent=yes \
-o LogLevel=DEBUG \
"/bin/sh -c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker' "