如何在ssh远程linux服务器时不需要输入密码

目的:

  期望A服务器在对B服务器执行ssh或者scp等命令的时候不需要输入密码

实现方法:

  1.通过安装sshpass服务

  2.通过密钥验证的方式

操作过程:

  一、通过sshpass的方式达到密码非交互

    1.安装sshpass服务(centeros 7上可直接yum安装,而centeros 6必须下载文件编译安装)

      yum install sshpass

    2.使用sshpass命令登陆远程服务器

      sshpass -p '密码' ssh root@192.168.0.1

      sshpass -p '密码' scp 1.txt root@192.168.0.1:/root

  二、通过密钥认证方式达到免交互免密码认证

    1.通过ssh-keygen命令生成公钥

      ssh-keygen -t rsa

    2.在/root/.ssh/目录下会生成一个'id_isa.pub'的文件,将其拷贝到目标主机

      scp /root/.ssh/id_isa.pub root@192.168.0.1:/root

      或者直接使用ssh-copy-id命令去复制公钥自动写入到authorized_keys文件中,这样就不需要接下来的手动复制公钥操作了

        ssh-copy-id -i /root/.ssh/id_isa.pub root@192.168.0.1

    3.将id_isa.pub里面的内容重定向到目标主机的/root/.ssh/authorized_keys文件中(如果没有.ssh目录和authorized_keys文件,需要自己手动创建)

      cat id_isa.pub >> /root/.ssh/authorized_keys

      注意:authorized_keys权限一定要为600

    4.此时再登陆目标主机发现不需要输入密码

sshpass方式与公钥认证对比:

  做过这个小实验就不难发现,sshpass命令中附带了明文密码,这时候如果用户权限管控不到位、或者在使用ps命令发现sshpass这个进程的时候都可以看到远程主机的密码,所以不建议这种方式,极力推荐ssh的密钥认证。

  

转载于:https://www.cnblogs.com/huskiesir/p/10193566.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值