在进行SCP(Secure Copy Protocol)文件传输时,使用SSH密钥对可以实现免密传输,提升了安全性和便利性。以下是详细的步骤:
步骤1:生成SSH密钥对
首先,在你的本地环境中生成一个SSH密钥对。密钥对将用于在客户端和服务器之间建立安全的通信。
ssh-keygen -t rsa -b 2048 -f ./my123
这将生成一个私钥文件(通常以id_rsa
命名)和一个公钥文件(通常以id_rsa.pub
命名)。
注意: 在生成密钥对时,你可以选择是否设置密钥短语。密钥短语是一个额外的安全层,用于保护私钥。
如果要免密scp传输就不要设置密钥短语!!!
执行完毕后会在你设置的目录中有两个文件
my123
私钥 scp -i ./my178 相当于携带认证token了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 客户端会对这种情况进行警告,并且不会加载私钥。
要解决这个问题,你可以按照以下步骤操作:
-
修复私钥文件的权限:
使用以下命令将私钥的权限设置为仅对拥有者可读可写:
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文件传输,无需输入密码。请确保妥善保管你的私钥,并遵守任何安全政策和规定。