我们希望通过基于公钥认证的AWS SFTP服务器为客户端提供访问AWS s3 bucket的权限,如何基于公钥认证为客户端提供访问权限,我们将遵循哪些步骤?
如果您正在使用AWS Transfer for SFTP,那么您应该:
- 要求用户生成RSA对并向您提供公钥
- 在AWS传输服务器中创建用户并附加公钥
用户应该能够使用他们的私钥连接到服务器。
我认为您还需要创建一个IAM Role,授予用户对适当S3桶的访问权限。参见:与服务管理的用户一起工作- AWS Transfer Family
我使用ssh-keygen创建了密钥对,然后这两个密钥存储在同一个文件夹中。下面的脚本被传递,然后文件自动传输到客户端文件夹
echo " Privatekey,PublicKey (copied)"
chmod 600 $folder/id_rsa
# private key permission changed
filechmod_result=`echo $?`
if [[ $filechmod_result -eq 0 ]];
then
echo "chmod is success 12345678"
else
echo "chmod is fail"
fi
sftp -o Port=8022 -o IdentityFile=$folder/id_rsa -o StrictHostKeyChecking=no $username@$servername << !
cd client folder
put $folder/$client folder
ls