CentOS下实现SCP免输密码传送文件

前提条件:两台CentOS主机拥有相同的用户名,假设主机A和主机B拥有相同的用户名binguo,只需下面两步
1.以binguo帐户名登录主机A,主目录下执行如下命令生成配对密钥,不用管提示,一路回车;
ssh-keygen -t rsa
2.将主目录下隐藏 目录.ssh中的id_rsa.pub文件复制到主机B的binguo主目录的/.ssh/目录中,并重命名为authorized_keys。
cd .ssh
scp id_rsa.pub 主机B:/home/binguo/.ssh/authorized_keys
Ps.如果主机B上的authorized_keys文件存在,则用下面的语句追加进去
cat id_rsa.pub >> 主机B:/home/binguo/.ssh/authorized_keys

<think>好的,用户想在CentOS7上使用scp命令将本地文件到远程服务器,并且希望让这个进程在后台运行。我需要先回忆一下scp的基本用法和后台运行的方法。 首先,根据引用中的信息,scp命令的基本格式是scp [源路径] [用户名@服务器地址:目标路径]。比如用户提到的上传本地文件到远程服务器的命令应该是scp /path/filename username@servername:/path,这符合引用[2]的内容。所以用户需要替换自己的文件路径、用户名和服务器地址。 接下来,用户希望让scp在后台运行。通常,在Linux中让进程后台运行的方法是在命令末尾加上&符号。但scp在使用时可能会要求密码,如果是通过SSH密钥认证的话,可能不需要交互,但如果是密码认证,直接放到后台可能有问题,因为需要密码时会无法响应。这时候可能需要考虑使用nohup命令,避进程被挂起。根据引用[3]提到的,scp是加密的,所以可能涉及交互的情况需要处理。 另外,用户可能没有设置SSH密钥登录,每次scp都需要密码。这时候如果直接放到后台,密码的提示可能会被忽略,导致传失败。所以可能需要先配置密登录,或者使用其他方法。 然后,考虑后台运行的具体方法。可能的步骤是:使用nohup结合&,将出重定向,避占用终端。例如,nohup scp file user@remote:/path &,这样即使终端关闭,进程也会继续运行。但需要确保标准入被关闭或者重定向,否则可能卡住。根据引用[1]中的例子,用户可能已经知道scp的基本用法,但需要后台执行。 此外,用户可能还需要查看传的进度或日志,可以通过重定向出到文件,比如nohup scp file user@remote:/path > log.txt 2>&1 &,这样日志会被保存到log.txt中。 总结可能的解决方案:首先确保可以无密码登录远程服务器,使用SSH密钥对;然后使用nohup和&将scp命令放到后台运行,同时重定向出到日志文件。这样即使用户关闭终端,传也会继续。 还需要提醒用户,如果传文件,可能需要考虑网络稳定性,或者使用rsync等更可靠的工具,但用户明确要求用scp,所以重点在scp的后台执行方法。 最后,检查是否有权限问题,比如本地文件是否可读,远程目录是否可写,这些也是常见的问题,但用户的问题主要集中在后台运行上,所以可能不需要深入讨论权限,除非用户遇到问题。</think>在CentOS7中通过scp文件到远程服务器并实现后台运行,可按照以下步骤操作: --- ### **步骤说明** 1. **基础命令格式** 使用`nohup`+`&`组合实现后台运行,并避终端关闭导致进程中断: ```bash nohup scp /本地文件路径 username@远程服务器IP:/远程目标路径 > scp.log 2>&1 & ``` - `/本地文件路径`:如`/home/user/data.tar` - `username@远程服务器IP`:如`ubuntu@186.53.167.xx` - `/远程目标路径`:如`/home/ubuntu/` 2. **添加SSH密钥认证(可选)** 若需避手动密码,需提前配置SSH密钥对: ```bash ssh-keygen -t rsa # 本地生成密钥(默认保存在~/.ssh/) ssh-copy-id -i ~/.ssh/id_rsa.pub username@远程服务器IP # 上传公钥到远程服务器 ``` 3. **验证后台进程** 执行后可通过以下命令查看任务状态: ```bash jobs -l # 查看后台任务列表 tail -f scp.log # 实时查看传日志 ``` --- ### **完整示例** 假设需将本地文件`/home/asa/data.zip`传到远程服务器`186.53.167.xx`的`/home/ubuntu/`目录,用户名为`ubuntu`: ```bash nohup scp /home/asa/data.zip ubuntu@186.53.167.xx:/home/ubuntu/ > ~/scp_data.log 2>&1 & ``` --- ### **注意事项** 1. **日志文件作用** `scp.log`会记录传进度和错误信息。若未重定向出,可能因无终端交互导致任务异常[^3]。 2. **网络稳定性** 后台传依赖网络连接,若连接中断需重新发起传。对大文件建议使用`rsync`(支持断点续传)[^4]。 3. **权限问题** 确保本地文件可读,且远程目标目录有写入权限[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值