Ansible--通过SSH与远程服务器连接,ansible--ssh


钩子:

        SSH原理与运用(一):远程登录

         为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,推荐使用ssh-keygen与ssh- copy-id(scp)来实现快速证书的生成和公钥下发,其中ssh-keygen生成一对密钥,使用ssh-copy-id(scp)来下发生成的公钥。下面以A服务器与B服务器双向实现免密码登录和拷贝文件为例,介绍相关的配置。 

      A服务器地址:192.168.33.44,下面简称A (主控端)
      B服务器地址:192.168.33.55,下面简称B(被控端)


由于是用Vagrant做测试,所以以下都是在用户vagrant下做测试:

1. 在A生成密钥对

ssh-keygen -t rsa -P ''
在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥。

2.拷贝A的公钥(id_rsa.pub)到B

这里拷贝到B的vagrant用户.ssh目录下为例:

scp /home/vagrant/.ssh/id_rsa.pub:~/.ssh/id_rsa.pub.44v vagrant@192.168.33.55
3. 登录B

拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中

cat id_rsa.pub.44v >> authorized_keys     (更暴力的处理方法是:    cat id_rsa* >> authorized_keys)
4. 此时在A中用SSH登录B或向B拷贝文件,将不需要密码

ssh vagrant@192.168.1.201
scp abc.txt vagrant@192.168.33.55:/home

由于本地用户名vagrant与远程用户名vagrant一致,登录时可以省略用户名:

ssh host

实现B免密码登录A,操作方式是一样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中即可。





相关内容

    暂无相关文章