感谢大家的回复。最终我最终将所有内容都放在这样的python文件中:import sys, subprocess, json
output = subprocess.Popen('aws sts get-session-token --serial-number sys.argv[2] --token-code '+sys.argv[1], shell=True,stdout=subprocess.PIPE)
output = json.loads(output.communicate()[0].decode('utf-8').strip())
AccessKeyId=output['Credentials']['AccessKeyId']
SecretAccessKey=output['Credentials']['SecretAccessKey']
SessionToken=output['Credentials']['SessionToken']
subprocess.check_output('aws configure set aws_access_key_id '+AccessKeyId+' --profile mfa', shell=True)
subprocess.check_output('aws configure set aws_secret_access_key '+SecretAccessKey+' --profile mfa', shell=True)
subprocess.check_output('aws configure set aws_session_token '+SessionToken+' --profile mfa', shell=True)
然后在bash_profile上我有一个别名:alias a="python3 ~/bin/python3_mfa.py $1"
这是有效的。但如果我在别名中添加更多命令,它就会停止工作。试图解决这个问题。例如 :alias a="python3 ~/bin/python3_mfa.py $1;eb ssh env --profile mfa;"
不起作用。