📅  最后修改于: 2023-12-03 15:39:24.241000             🧑  作者: Mango
SCP(Secure Copy)是一种安全的远程文件传输协议,它能够在本地计算机和远程计算机之间进行文件的传输,使用了 SSH(Secure Shell)协议加密所有传输的数据。
通常,SCP 需要在每次传输文件时都需要输入远程主机的密码,但是使用 SSH 密钥可以避免每次都输入密码。
本文将介绍如何在 Shell-Bash 环境下使用带有 SSH 密钥的 SCP 进行文件传输。
在执行本文中的命令前,您需要满足以下前提条件:
~/.ssh/authorized_keys
文件中。使用带有 SSH 密钥的 SCP 进行文件传输需要指定私钥文件,方法如下:
scp -i /path/to/private_key local_file remote_user@remote_host:/path/to/remote_file
其中,/path/to/private_key
是本地计算机上的 SSH 私钥文件路径,local_file
是本地要传输的文件路径,remote_user
是远程主机的用户名,remote_host
是远程主机的主机名或 IP 地址,/path/to/remote_file
是远程主机上的文件路径。
接下来,我们通过一个示例演示如何使用带有 SSH 密钥的 SCP 进行文件传输。
假设我们要将本地计算机上的文件 /path/to/local_file
传输到远程主机的路径为 /path/to/remote_file
,远程主机的用户名为 remote_user
,远程主机的 IP 地址为 192.168.0.100
。
首先,我们需要执行以下命令将本地的公钥文件添加到远程主机的 ~/.ssh/authorized_keys
文件中:
cat /path/to/local_public_key | ssh remote_user@192.168.0.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
然后,我们可以使用以下命令将本地的文件传输到远程主机:
scp -i /path/to/local_private_key /path/to/local_file remote_user@192.168.0.100:/path/to/remote_file
这样,文件就会被成功地传输到远程主机上指定的路径。
本文介绍了如何在 Shell-Bash 环境下使用带有 SSH 密钥的 SCP 进行文件传输。对于经常需要在本地计算机和远程主机之间进行文件传输的开发者来说,使用 SSH 密钥可以极大地提高工作效率。