使用SSH密钥对进行SCP文件传输的完整指南

在进行SCP(Secure Copy Protocol)文件传输时,使用SSH密钥对可以实现免密传输,提升了安全性和便利性。以下是详细的步骤:

步骤1:生成SSH密钥对

首先,在你的本地环境中生成一个SSH密钥对。密钥对将用于在客户端和服务器之间建立安全的通信。

ssh-keygen -t rsa -b 2048 -f ./my123

这将生成一个私钥文件(通常以id_rsa命名)和一个公钥文件(通常以id_rsa.pub命名)。

注意: 在生成密钥对时,你可以选择是否设置密钥短语。密钥短语是一个额外的安全层,用于保护私钥。

如果要免密scp传输就不要设置密钥短语!!!

执行完毕后会在你设置的目录中有两个文件

  1. my123 私钥 scp -i ./my178 相当于携带认证token了
  2. my123.pub 公钥 放在目标服务器的相当于密码

这里文件就是公钥私钥字符串本身没啥特殊的

步骤2:将公钥添加到目标服务器

将生成的公钥(id_rsa.pub文件)的内容添加到目标服务器的~/.ssh/authorized_keys文件中。

cat ./my123.pub >> ~/.ssh/authorized_keys

~/.ssh/ 就是 /root/.ssh 目录

把公钥粘贴到服务 /root/.ssh/authorized_keys 也是可以的。一个公告字符串是放一行的,直接文本末尾粘贴就行了

步骤3:确保私钥文件权限正确

Authorized users only. All activities may be monitored and reported.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0711 for '/Users/zhangsan/Desktop/my123' are too open.

这个警告说明你的私钥文件的权限设置太开放了,可能被其他用户访问到。SSH 客户端会对这种情况进行警告,并且不会加载私钥。

要解决这个问题,你可以按照以下步骤操作:

  1. 修复私钥文件的权限

    使用以下命令将私钥的权限设置为仅对拥有者可读可写:

chmod 600 ./my123

./my123 是你的私钥文件

这将确保只有拥有者有权限读取和写入私钥文件,提高了私钥的安全性。

步骤4:执行SCP命令进行文件传输

使用SCP命令将本地文件传输到远程服务器:

scp -i ./my123 /path/to/local/file username@remote.server:/path/to/remote/location/

./my123 私钥文件

在这个命令中,-i选项用于指定私钥文件的路径,以便SCP命令可以使用指定的私钥进行身份验证。

这样,你就成功地使用SSH密钥对进行了SCP文件传输,无需输入密码。请确保妥善保管你的私钥,并遵守任何安全政策和规定。

你可能感兴趣的:(ssh,运维)