SCP 是 Linux 系统中用于安全传输文件的工具,它基于 SSH 协议。使用 SCP 不需要单独生成文件,但需要配置 SSH 访问权限。
scp [选项] 源文件 目标路径
从本地复制到远程:
scp /path/to/local/file username@remotehost:/path/to/remote/directory
从远程复制到本地:
scp username@remotehost:/path/to/remote/file /path/to/local/directory
复制整个目录(使用 -r 选项):
scp -r /path/to/local/directory username@remotehost:/path/to/remote/directory
PEM 文件通常用于 SSH 密钥认证,以下是生成 PEM 格式密钥的方法:
生成密钥对:
ssh-keygen -t rsa -b 4096 -m PEM -f mykey
这将生成两个文件:
mykey
(私钥)mykey.pub
(公钥)将私钥转换为 PEM 格式(如果尚未是 PEM):
openssl rsa -in mykey -outform PEM -out mykey.pem
ssh-keygen -t ecdsa -b 521 -m PEM -f ecdsa_key
如果你已有 OpenSSH 格式的密钥(以 -----BEGIN OPENSSH PRIVATE KEY-----
开头),可以转换为 PEM:
ssh-keygen -p -m PEM -f /path/to/your/key
使用 PEM 文件进行 SCP 认证:
scp -i /path/to/your/key.pem /local/file username@remotehost:/remote/path
设置适当的密钥文件权限:
chmod 600 /path/to/your/key.pem
不要共享私钥
问题1: 收到 "Permissions for 'key.pem' are too open" 错误
解决: 运行 chmod 600 key.pem
限制文件权限
问题2: SCP 连接被拒绝 解决: 确保远程服务器 SSH 服务正在运行且防火墙允许 SCP 连接
问题3: PEM 文件格式无效
解决: 使用 ssh-keygen -p -m PEM -f yourkey
转换格式