scp 方式传输数据操作步骤
步骤一:打开新电脑的「远程登录开关」
设置中搜索「共享」,打开「远程登录开关」

步骤二:检查远程登录开关打开后 sshd 服务是否成功启动
ps auwx | grep sshd
如果启动成功,会输出一条 sshd 的记录,如果没有输出 sshd 的记录,所以 sshd 服务没有启动成功。
如果没有启动成功,手动执行 /usr/sbin/sshd 命令来启动 sshd 服务
如果启动成功则继续按照步骤三继续操作, 如果启动时报错 sshd: no hostkeys available -- exiting.,说明需要生成一些列的密钥啥的
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_dsa_key
chmod 600 /etc/ssh/ssh_host_rsa_key
ssh localhost
/usr/sbin/sshd
步骤三:找到新电脑的 ip 和用户名
在新电脑的终端执行 ifconfig 找到新电脑的 ip 地址。
在新电脑的终端执行 who am i 找到自己的电脑用户名
在老电脑中执行 scp 命令复制文件夹到新电脑
scp -r localdir user@host:$dirpath # 即 scp -r 本地目录路径 远程主机用户名@ip:存放文件路径
-r 表示传输的是文件夹,如果只是传输文件,则不需要加此参数
可能的报错
ssh: connect to host xx.xx.xx.xx port 22: Connection refusedlost connection
如果执行 scp 命令时提示 ssh: connect to host xx.xx.xx.xx port 22: Connection refusedlost connection,说明 sshd 服务没开启成功,检查接受数据的电脑「远程登录开关」是否开启,按照第二部检查 ssd 服务是否启动。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
如果报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
这个问题应该是发生在,你想把本地文件上传到远程服务器,可能你本地的私钥文件不是默认文件名,此时需要你执行 scp 命令时指定私钥文件
scp -i ~/.ssh/id_rsa_xxx -r localdir user@host:$dirpath # -i 后面是本地私钥文件的文件路径,这个一般跟 ~/.ssh/config 文件里配置的私钥路径相同