scp免密传输文件
01 前言
scp命令都很熟悉,通常用于服务器之间文件传输,但是经常应用此场景的同学会发现每次都需输入密码,操作有点繁琐。接下来介绍免密传输的办法。
02 需求
假设有两台服务器A(192.168.4.238)和服务器B(192.168.4.240),现在要将A服务器上bpoc用户下文件免密传输到B服务器上dbbak用户下
03 实现步骤
1、在服务器A上bpoc用户(根据实际情况)下执行 "ssh-keygen -t rsa",然后连续按3次 “enter” 键:
[bpoc@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bpoc/.ssh/id_rsa):
Created directory '/home/bpoc/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/bpoc/.ssh/id_rsa.
Your public key has been saved in /home/bpoc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kzMNS8+GgZaUUGl6ybVDLlJy34rDq0QdFbMGHy4OQFY bpoc@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
| .+.Eo+o=. |
| . ...*Bo+ |
| .B**Oo |
| o====X. |
| .+ooSo= |
| . + .= |
| . o |
| . . |
| .. |
+----[SHA256]-----+
[bpoc@localhost ~]$
可以看到,服务器A上bpoc用户下密钥已生成,公钥路径为~/.ssh/id_rsa.pub
2、将生成的公钥拷贝到服务器B下的dbbak用户(根据实际情况)下。
scp ~/.ssh/id_rsa.pub dbbak@192.168.4.240:.
此处需要输入240服务器dbbak的密码 **
3、登录服务器B,dbbak用户(根据实际情况),执行:
# 先检查下 ~/.ssh目录是否存在,若不存在,则需要先建立
# ~/.ssh的目录权限是700,
# ~/.ssh/authorized_keys 的文件权限必须是 600(否则免密传输报错)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

浙公网安备 33010602011771号