Linux服务器之间建立互信通道免密scp和ssh

场景说明:

正常情况下使用ssh登录或者使用scp复制文件时均需要输入密码才可正常通信,在shell脚本需要执行以上操作的时候再输入密码就显得很恶心

举个例子:服务器A访问服务器B

  • A服务器用户 :test
  • B服务器用户:test
  • 首先在A服务器上用ssh-keygen生成公钥和私钥
1
ssh-keygen -t  rsa
  • 之后会在/home/test/.ssh/目录下生成两个文件
1
2
id_rsa
id_rsa.pub
  • 在B服务器上检查是否有/home/test/.ssh/的目录,如果没有则创建这个目录
  • 将A服务器上的id_rsa.pub文件拷贝到B服务器/home/test/.ssh/的目录下
  • 之后把公钥文件追加到authorized_keys文件中
1
2
# 命令:>是覆盖,>>是追加
cat id_rsa.pub >> authorized_keys

  • 完成以上操作即可进行效果验证,当我们在A服务器上使用 ssh或scp访问B服务器的时候就不需要再使用密码了