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文件中即可。





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值