任何人都知道如何ssh / su - 通过最初传递密码本身?
像:
ssh username@hostname -p [password]
pbrun su - unix_owner -p [password]
我怎样才能做到这一点?
它不应该弹出密码或任何RSA身份验证,如是/否。
答案 0 :(得分:1)
我认为您可能需要sudoers file以su
方式完成工作,而不会被提示输入密码。
我没有在没有密码提示的情况下使用ssh,但发现this表示可以完成...
答案 1 :(得分:1)
以明文形式传递密码不是ssh的意图。 尝试了解ssh密钥身份验证(谷歌会帮助),您不再需要输入密码了。
好的,更详细一点,试试这个:
远程机器上的
> mkdir -p ~/.ssh #if neccessary
> touch ~/.ssh/authorized_keys2
> chmod go-rwx $HOME/.ssh/authorized_keys2
在您的本地计算机上:
> ssh-keygen # if neccessary
> cat ~/.ssh/id_rsa.pub | ssh root@remotehost "cat >> .ssh/authorized_keys2 && chmod 0600 ~/.ssh/authorized_keys2"
答案 2 :(得分:1)
更好的方法是使用ssh键,就像其他答案一样,但如果你确实需要它,你可以使用expect。 只需创建一个像这样的expect.file:
#!/usr/bin/env expect
set username youruser
set pass yourpassword
set host yourhost
spawn ssh ${username}@${host}
expect -re "password:"
send "${pass}\r"
expect -re "$"
interact
并执行它:
expect expect.file
答案 3 :(得分:0)
不能这样做。您正在远程计算机上调用passwd程序。如果它有办法在不提示输入旧密码的情况下更改密码,任何人都可以在密码进入控制台时更改密码。您仍然需要通过ssh链接传递密码
答案 4 :(得分:0)
对于SSH,您可以使用RSA密钥,这些密钥不会提示您输入密码。
至于SU,它必须是硬编码的,否则你必须创建自己的应用程序作为各种包装。
答案 5 :(得分:0)
我认为您不能直接将密码传递给ssh命令(否则它将存储在您的历史记录中)。为什么不使用键跳过身份验证提示。