我有一个ec2实例,我连接到它并执行以下操作:
[userA@ip-abcd ~]$ ssh my_ec2_instance
[userA@ip-abcd ~]$ whoami
userA
[userA@ip-abcd ~]$pwd
/home/userA
[userA@ip-abcd ~]$ cd ~
[userA@ip-abcd ~]$ pwd
/home/userA
[userA@ip-abcd ~]$ ls
(shows nothing)
[userA@ip-abcd ~]$ su userB
Password:
(I enter the password and the prompt changes to)
bash-4.2$ pwd
/home/UserA
bash-4.2$ cd ~
bash-4.2$ ls
A B C D 如何以非交互式的方式以单行方式输入密码?
为什么我需要这样做:上面的文件夹B有我需要从git更新的代码,我想从jenkins shell脚本调用它
What我试过:
1) echo actual_password | su userB
2) su userB -p actual_password
3) echo userBPassword | su -c whoami userB 是否有一种方法将密码添加到~/.bash_profile并在执行su - userB时自动使用?暴露密码是一种不好的做法?
发布于 2021-03-01 07:39:31
使用sudo是一种选择吗?然后你就可以:
echo userBPassword | sudo -S -u userB whoami 发布于 2021-03-01 10:40:49
你可以用钥匙来避免密码。在您的userB机器上生成一个密钥对作为ec2 --将私钥复制到您登录的机器上,并存储在ec2/..ssh/id_rsa_userB_ec2中
编辑UserA/..ssh/config以添加一个新条目,如
Host ec2
Hostname my_ec2_instance
Port 22
User userB
IdentityFile ~/.ssh/id_rsa_userB_ec2在ec2机器上,将公钥添加到authorized_keys文件中。然后,您就可以登录并使用配置文件中的上述别名使用userB将id更改为ssh ec2。
https://unix.stackexchange.com/questions/636939
复制相似问题