python - 将 sshpass 更改为更安全的解决方案

标签 python ssh scp

我有一个包含以下函数的 python 脚本:

def upload2server(file):
    host_name = 'example.ex.am.com'
    port_num = '432'
    user_name = 'user'
    password = 'passw'
    web_path = '/example/files/'
    full_webpath = user_name + '@' + host_name + ':' + web_path + args.key
    pre_command = 'sshpass -p "' + password + '" scp -P' + ' ' + port_num + ' ' 

    scp_comm = pre_command + file + ' ' + full_webpath 

    os.system(scp_comm)

我有两个问题:

  1. 如果我使用端口转发从远程网络运行此脚本有多不安全?
  2. 我可以通过哪些方式使上传更安全?

谢谢!

最佳答案

就个人而言,我会为每个主机生成一个 SSH key 对,然后您就可以完全忘记在 scp 命令中使用密码了。内联密码不是问题,但这确实意味着您的密码将记录在该用户的 ~/.bash_history 文件中。

关于python - 将 sshpass 更改为更安全的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46265684/

相关文章:

python - 从第二列开始循环

linux - 使用perl ssh在远程服务器上写入文件

linux - Linux 上 scp 的协议(protocol)不可用错误

linux - 传输文件!!!从unix服务器到linux服务器

macos - 是否可以使用SSH复制文件的一部分?

python - 如何使用Python从一次性音频样本中获取以赫兹为单位的音符?

python - Python 文档中 "mixin methods"的含义

Python 子进程调用挂起?

git - 更新后 SourceTree ssh-agent 失败

ruby-on-rails - 生成 SSH key (Win/msysgit) - Ruby on Rails 教程