ubuntu 之间免密码 scp 文件传输

本文介绍如何通过复制公钥到受信主机的方式实现SSH连接的免密码登录,适用于两台或多台机器之间的安全信任配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


两台cp ,其中一台为liukk@newland:~ 另外一台为:liukk@liukk-desktop:

rcp -p id_rsa.pub liukk@192.168.16.247:~/.ssh/authorized_keys


执行上述命令时,两台机器的用户之间建立安全信任关系。下次scp拷贝文件就不需要密码了。

 如果是多台信任。可以讲拷贝的authorized_keys 命名为authorized_keys1 ,authorized_keys2,...


### 自动化 SCP 文件传输并通过脚本实现自动身份验证 为了在使用 `scp` 时无需手动输入码,可以通过配置 SSH 钥对或借助工具如 `sshpass` 来完成自动化身份验证。 #### 方法一:通过 SSH 钥对实现无码登录 创建 SSH 钥对并将公钥部署到目标远程服务器上可以有效避每次都需要输入码的情况。以下是具体步骤: 1. **生成钥对** 如果尚未生成 SSH 钥对,则可以在本地运行以下命令来生成新的 RSA 类型钥对: ```bash ssh-keygen -t rsa -b 4096 ``` 此过程中可以选择不设置 passphrase(即直接按 Enter),从而使得后续连接完全不需要任何交互式输入[^3]。 2. **分发公钥至远程主机** 接下来需要将刚刚生成的公钥 (`~/.ssh/id_rsa.pub`) 添加到远程用户的授权列表中去。这一步可以直接用 `scp` 完成: ```bash scp ~/.ssh/id_rsa.pub user@remote.server.com:~/.ssh/authorized_keys ``` 若 `.ssh` 目录不存在,请先创建它;另外还需确保权限正确设定为严格模式 (700 对于目录, 600 对于文件)[^1]。 3. **测试连接** 配置完成后尝试简单地执行一次普通的 `ssh` 登陆操作看是否会弹出询问框要求键入码。如果没有则证明成功启用了基于钥的身份校验机制。 --- #### 方法二:利用 `sshpass` 实现明文码传递 对于某些场景可能不适合采用公开秘钥的方式来进行认证,比如临时性的批量任务或者是受限环境下无法修改服务端配置的时候,那么可以考虑使用第三方软件包叫做 `sshpass` 提供的功能支持。 1. **安装依赖库** 在大多数 Linux 发行版里面都可以很方便找到该组件并轻松安装好。例如,在 Debian/Ubuntu 系统家族当中只需一条 apt-get 命令即可搞定: ```bash sudo apt install sshpass ``` 2. **构建含码的一次性脚本** 下面展示了一个典型的应用范例,其中包含了如何结合 `sshpass` 和标准形式下的 `scp` 操作一起工作的细节描述: ```bash sshpass -p 'your_password' scp local_file_path username@hostname:/path/to/destination/ ``` 替换掉 `'your_password'`, `local_file_path`, `username`, `hostname` 以及最终的目标存储地址部分为自己实际使用的数值就可以了[^4]。 需要注意的是这种方法虽然方便快捷但也存在着一定的安全隐患,因为码是以纯文本的形式暴露在整个命令串之中,所以仅建议用于短期调试或者受控环境内部署情况之下。 --- ### 注意事项 无论选用哪种方案都务必重视安全性考量因素,尤其是在开放公网访问条件下更应该谨慎对待敏感信息保护事宜。此外还要记得定期更新维护相关凭证材料以防泄事件发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值