如何ssh / su - 通过最初传递密码本身?

时间:2011-08-23 22:09:59

标签: ssh

任何人都知道如何ssh / su - 通过最初传递密码本身?

像:

ssh username@hostname  -p [password] 
pbrun su - unix_owner -p [password] 

我怎样才能做到这一点?
它不应该弹出密码或任何RSA身份验证,如是/否。

6 个答案:

答案 0 :(得分:1)

我认为您可能需要sudoers filesu方式完成工作,而不会被提示输入密码。

我没有在没有密码提示的情况下使用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命令(否则它将存储在您的历史记录中)。为什么不使用键跳过身份验证提示。