Linux下用SCP免密传输文件设置

本文指导如何在两台服务器间实现SSH免密复制文件。首先在服务器1上生成SSH密钥对,如果缺少必要的文件如authorized_keys,则创建它们。接着,使用scp命令将服务器1的公钥发送到服务器2。在服务器2上,将接收到的公钥追加到authorized_keys文件中。完成这些步骤后,通过scp命令复制文件时,便不再需要输入密码。

服务器1复制文件到服务器2,设置免密
服务器1:
查看/root/.ssh/下是否有公钥私钥

authorized_keys  authorized_keys2  id_rsa  id_rsa.pub  known_hosts
	如果没有这些文件,则执行命令:ssh-keygen -t rsa,所有需要输入的地方直接按回车。所以公私钥文件都是在/root/.ssh/位置保存,且没有密码。

文件名默认是id_rsa和id_rsa.pub
将服务器1中/root/.ssh/id_rsa.pub的文件scp到服务器2上

scp ~/.ssh/id_rsa.pub root@119.3.44.176:/root/.ssh/xxx.pub

服务器2:
查看/root/.ssh/是否有文件:authorized_keys,如果没有则创建一个
然后执行

cat  ./id_rsa.pub >> ./authorized_keys
配置完后,执行scp命令
scp  test.txt   root@192.168.xxx.xxx:/test.txt

第一次需要密码,后续就不需要密码了

配置 Windows 向 Linux 使用 SCP 免密传输文件,主要涉及以下几个步骤: ### 生成钥对 首先,在 Windows 端生成 SSH 钥对。如果 Windows 系统安装了 OpenSSH 客户端(通常在 Windows 10 及以上版本中默认安装),可以使用以下命令生成 RSA 类型的钥对: ```bash ssh-keygen -t rsa ``` 执行命令后,会提示输入保存钥的文件路径(默认为 `C:\Users\用户名\.ssh\id_rsa`),以及设置码(若要实现登录,则直接按回车跳过设置)。生成的钥对包括私钥 `id_rsa` 和公钥 `id_rsa.pub` [^3]。 ### 添加公钥到 Linux 服务器 接下来,需要将 Windows 上生成的公钥添加到目标 Linux 服务器的 `~/.ssh/authorized_keys` 文件中。可以通过多种方式完成这一操作,例如使用 `scp` 或 `sftp` 将 `id_rsa.pub` 文件复制到 Linux 服务器上,然后执行以下命令将公钥内容追加至 `authorized_keys` 文件: ```bash cat id_rsa.pub >> ~/.ssh/authorized_keys ``` 确保 `~/.ssh` 目录及其下的 `authorized_keys` 文件权限正确,推荐设置为: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` 这样可以保证 SSH 服务正常识别公钥文件 [^3]。 ### 测试登录 完成上述配置后,尝试从 Windows 使用 `scp` 命令向 Linux 服务器传输文件,验证是否实现了免密传输。例如,要将本地的 `test.txt` 文件传输至 Linux 服务器上的 `/home/user/` 目录下,可以使用如下命令: ```bash scp test.txt user@linux_server_ip:/home/user/ ``` 如果一切配置正确,该命令将不会要求输入码,而是直接完成文件传输 [^1]。 ### 注意事项 - 在进行公钥传输时,务必确保 `id_rsa.pub` 文件的内容完整无误地复制到了 Linux 服务器上的 `authorized_keys` 文件中,任何格式错误都可能导致登录失败 [^1]。 - 如果 Windows 系统未安装 OpenSSH 客户端,可以通过 Windows 功能启用它,或者考虑使用第三方工具如 PuTTY 来生成钥对并实现类似功能 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值