scp实现免密传输
目的:
需要从A主机免密码输入复制文件或文件夹至B主机,或者将B主机的文件或文件夹免密码复制到A主机
操作过程:
1、在A主机上执行以下命令来生成配对密钥
ssh-keygen -t rsa
连续按三次回车
2、将 A主机 的.ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys
注意:如果没有.ssh文件需要手动创建,mkdir -p /root/.ssh
scp /root/.ssh/id_rsa.pub B主机IP地址:/root/.ssh/authorized_keys
3、验证
成功,现在传输文件到B主机就不再需要输入密码了。
1、可能出现的报错信息以及解决方法:
# 报错信息
root@ubuntu:/home/xinxin# cd /root/.ssh/
bash: cd: /root/.ssh/: No such file or directory
# 具体解决方法操作
原因:没有用root用户登录过
执行操作:执行下ssh操作,就能自动生成
执行命令:ssh localhost
yes
输入password
cd /root/.ssh/就进入了root下的.ssh目录
2、使用此方法需要注意:
复制的两台计算机需要用相同的账户名,这里都是用的root。
保持A、B主机均为root账户下,执行第一步,第二步中复制文件时可能.ssh目录并不存在,需要手动创建。
在第二步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >>命令将验证文件内容附加上去。
# 先将公钥文件从A主机复制到B主机,以a.pub命名
比如复制到scp .ssh/id_rsa.pub B主机IP地址:/root/.ssh/a.pub
# 再从B主机将a.pub文件中的SSH验证信息增加到原来已有的authorized_keys文件中
然后在B主机上执行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)