如何通过最初自己传递密码来ssh/su?
有人知道如何通过最初自己传递密码来ssh/su吗 比如: 我如何才能做到这一点?如何通过最初自己传递密码来ssh/su?,ssh,Ssh,有人知道如何通过最初自己传递密码来ssh/su吗 比如: 我如何才能做到这一点? 它不应该弹出密码或任何RSA身份验证,例如yes/no。我认为您可能需要一个类似于su的方式来完成工作,而不需要提示输入密码 我从来没有在没有密码提示的情况下使用过ssh,但我发现这表明它是可以完成的…我认为您可能需要一个类似于su的方式来完成工作,而不需要提示输入密码 我从来没有在没有密码提示的情况下使用过ssh,但我发现这表明它可以完成…无法完成。您正在远程计算机上调用passwd程序。如果它能够在不提示输入旧
它不应该弹出密码或任何RSA身份验证,例如yes/no。我认为您可能需要一个类似于
su
的方式来完成工作,而不需要提示输入密码
我从来没有在没有密码提示的情况下使用过ssh,但我发现这表明它是可以完成的…我认为您可能需要一个类似于
su
的方式来完成工作,而不需要提示输入密码
我从来没有在没有密码提示的情况下使用过ssh,但我发现这表明它可以完成…无法完成。您正在远程计算机上调用passwd程序。如果它能够在不提示输入旧密码的情况下更改密码,那么任何人都可以在进入您的控制台后更改您的密码。您仍然需要通过ssh链接传入密码无法这样做。您正在远程计算机上调用passwd程序。如果它能够在不提示输入旧密码的情况下更改密码,那么任何人都可以在进入您的控制台后更改您的密码。您仍然需要通过ssh链接传递密码对于ssh,您可以使用RSA密钥,而这些密钥不会提示您输入密码
至于SU,它必须是硬编码的,或者您必须创建自己的应用程序作为某种包装。至于SSH,您可以使用RSA密钥,这些密钥不会提示您输入密码
至于SU,它必须是硬编码的,或者您必须创建自己的应用程序作为某种包装。ssh不打算以明文形式传递密码。 尝试了解ssh密钥身份验证(google会有所帮助),您将不再需要键入密码 好的,更详细地说,试试这个: 在远程机器上
> 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"
ssh不希望以明文形式传递密码。 尝试了解ssh密钥身份验证(google会有所帮助),您将不再需要键入密码 好的,更详细地说,试试这个: 在远程机器上
> 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"
我认为您不能将密码直接传递给ssh命令(否则它将存储在您的历史记录中)。为什么不使用密钥跳过身份验证提示。我认为您不能将密码直接传递给ssh命令(否则它将存储在您的历史记录中)。为什么不使用密钥跳过身份验证提示。更好的方法是使用ssh密钥,就像其他答案建议的那样,但是如果您确实需要它,您可以使用它。 只需创建一个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
更好的方法是使用ssh密钥,就像其他答案建议的那样,但如果您确实需要它,您可以使用它。 只需创建一个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
您考虑过使用ssh密钥吗?这比在命令行上指定密码更好。您是在尝试通过脚本(即登录、做某事、注销)自动执行远程过程,还是在尝试自动登录到交互式shell?一个比另一个简单。您考虑过使用ssh密钥吗?这比在命令行上指定密码更好。您是在尝试通过脚本(即登录、做某事、注销)自动执行远程过程,还是在尝试自动登录到交互式shell?一个比另一个容易。