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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫