如何加密 curl 命令以保护服务器密码?

How to encrypt curl command to secure server password?

我需要保护服务器登录名和密码。

我有一个 Bash 脚本,要工作,我必须 运行 它在第三方服务上。 该脚本包含一个带有登录名和密码的 curl 命令,用于将数据传输到我的服务器。

curl -T filedata.txt ftp://login:password@ftp.server.ru/

如何在开源中安全地存储我的密码? Bash可以加密curl吗?

是否有其他方法可以将文件传输到服务器以在 UBUNTU 终端中工作?

使用 SSH 密钥是一种无需密码即可访问 Linux 服务器的好方法,

要求 1.Your 目标服务器应该启用 ssh 您应该已经生成 public 和 ssh 私钥(只需使用命令 ssh-keygen -t rsa) 2. 你应该在服务器上有一个用户帐号和密码。即使是 root 帐户也可以。 3. 你应该知道服务器的IP地址

方法一:复制密钥到服务器

  1. 将 SSH 密钥复制到远程服务器。 ssh-copy-id -i ~/.ssh/id_rsa.pub YOUR_USER_NAME@IP_ADDRESS_OF_THE_SERVER 使用用户名和密码登录

方法二:如果服务器没有用户名密码认证,只允许SSH public密钥认证。

您可以要求最终用户提供 her/his public 密钥。现在你可以做的是创建 .ssh/authorized_keys 目录,然后将 public 键复制到这里。

  1. 获取public密钥

通过键入以下命令要求最终用户提供 public 密钥:

cat ~/.ssh/id_rsa.pub 它将显示一个以 ssh-rsa:

开头的长随机字符串
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

您可以通过电子邮件或消息传递工具获取此文本。正常情况应该没有问题。

  1. 在用户的主目录中创建 ssh 目录(作为系统管理员)

请记住,您必须在最终用户的主目录中创建这些新目录和文件,而不是您自己 (root/sysadmin)。

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys 现在用文本编辑器打开这个 /home/user_name/.ssh/authorized_keys 文件并在此处添加用户的 public 密钥:

vim /home/user_name/.ssh/authorized_keys 保存并关闭文件。快准备好了。

  1. 为文件设置适当的权限

对 ssh 文件拥有适当的文件权限非常重要,否则您会看到诸如权限被拒绝(public密钥)之类的错误。

首先,确保设置正确的文件权限:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys 您使用 root 或您自己的管理员帐户为其他用户创建了这些文件。您需要将所有权更改为用户:

chown -R username:username /home/username/.ssh