加密密码

加密密码

我需要将位于多台服务器上的 3-4 个文件传输到中央服务器。我目前从这些服务器手动“scp”复制中央服务器上的文件。

请建议我如何才能自动执行该操作而不要求输入密码。我知道我可以通过使用“ssh-keygen”配置“无密码”身份验证来实现,但这不太安全,而且我们的组织也不允许这样做。我也使用过“sshpass”,但“sshpass”在脚本中显示了我的密码,这又是一个安全隐患。

请建议如何向“sshpass”提供加密密码以解决我的问题。

答案1

对于 sshpass,您可以使用 gpg 加密您的密码,如本文底部所述:https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/

不过,我要在这里回应@MadHatter 的评论作为答案:贵组织中的某个人需要接受有关使用密钥进行无密码登录的培训。他们是不是不安全,并且比任何类型的密码登录都安全得多。

答案2

回复@MadHatter 的评论的评论太长了:

经常被忽视的是,该~/.ssh/authorized_keys文件支持许多选项来限制允许使用特定密钥。

请检查man 8 sshd对于所有选项,但通常可以通过限制特定的(无密码)ssh 密钥对来完全减轻许多可察觉的风险:

  • 只执行特定操作command=
  • 仅允许一组特定的远程主机访问from="pattern-list"
  • 禁用交互式登录会话no-pty

相关内容