Login ansible远程用户作为根用户

Login ansible远程用户作为根用户,login,ssh,ansible,ansible-playbook,Login,Ssh,Ansible,Ansible Playbook,我想开始学习ansible,但有一件事我不懂: flipl@sun ~ % ansible -vvvv -m ping t420 SUDO password: <t420.beach.lan> ESTABLISH CONNECTION FOR USER: flipl <t420.beach.lan> REMOTE_MODULE ping <t420.beach.lan> EXEC ssh -C -tt -vvv -o ControlMaster=auto -

我想开始学习ansible,但有一件事我不懂:

flipl@sun ~ % ansible -vvvv -m ping t420
SUDO password: 
<t420.beach.lan> ESTABLISH CONNECTION FOR USER: flipl
<t420.beach.lan> REMOTE_MODULE ping
<t420.beach.lan> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/flipl/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 t420.beach.lan /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316 && echo $HOME/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316'
<t420.beach.lan> PUT /tmp/tmp1fqFHM TO /home/flipl/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316/ping
<t420.beach.lan> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/flipl/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 t420.beach.lan /bin/sh -c 'LANG=C LC_CTYPE=C /usr/bin/python /home/flipl/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316/ping; rm -rf /home/flipl/.ansible/tmp/ansible-tmp-1454775840.71-251439732457316/ >/dev/null 2>&1'
t420.beach.lan | success >> {
"changed": false, 
"ping": "pong"
}

flipl@sun ~ % su -
Password: 
Last login: Sa Feb  6 17:22:40 CET 2016 on pts/0

[root@sun ~]# ansible -vvvv -m ping t420 -u flipl
SUDO password: 
<t420.beach.lan> ESTABLISH CONNECTION FOR USER: flipl
<t420.beach.lan> REMOTE_MODULE ping
<t420.beach.lan> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/root/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=flipl -o ConnectTimeout=10 t420.beach.lan /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1454775858.05-125216053853458 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1454775858.05-125216053853458 && echo $HOME/.ansible/tmp/ansible-tmp-1454775858.05-125216053853458'
t420.beach.lan | FAILED => SSH Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
while connecting to 192.168.0.100:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
任何帮助都将不胜感激

谢谢,
pwe

您是否已将您的公钥添加到远程服务器中的授权文件中?

好的,我解决了它

root# ssh-copy-id flipl@t420
解决了它


我想,我误解了ssh密钥的概念

是的,我这样做了,但有一点很奇怪:“flipl$ssh t420”工作正常,但“root#ssh”flipl@t420'不起作用…可能您的根键与用户flipl不同。检查它们是否不同,您需要将root密钥也添加到远程服务器的授权文件中。正如我提到的,不允许通过ssh以root身份登录,那么为什么我必须添加我的root ssh密钥???
root# ssh-copy-id flipl@t420