提供 ssh 密码

提供 ssh 密码

情况:

  • 我有一个IP:192.168.1.1$IP
  • 用户名:root(或其他)$USER
  • 和密码:foo$PASSWD

有没有办法将 $PASSWD 提供给 ssh ?喜欢

 PASSWORD_VAR=$PASSWD ssh -l $USER $IP
  • 用户可以看到密码,
  • 用户必须“登陆”通常的交互式 shell 会话。
  • 如果需要的话,可以在桌面 Linux 上安装 somme 软件包。

阅读 ssh(1) 没有给我任何线索。这样的事情存在于window的世界中(例如Kitty),现在我想在unix中做同样的事情(suse或unbuntu,如果有的话)。

我知道如何设置公钥/私钥对,但这不是主题。

答案1

如果可以安装的话是可以的sshpass,所以你可以运行:

sshpass -p 'password' ssh 192.168.1.1

答案2

ssh默认情况下和设计上不会这样做。这是因为嵌入脚本中的明文密码从根本上来说是一个坏主意。尤其是因为 - 如果它是在单个命令行上指定的,那么它通常情况下显示在ps每个用户都可以看到的列表中。所以故意让它变得困难,以鼓励更好的习惯。公私密钥对,ssh-agent对于消除这一要求大有帮助。

如果你确实有需要,那么expect可以这样做:

#!/usr/bin/expect -f

spawn /usr/bin/ssh -n username@hostname 
expect "password:"
send "Password\n";
interact

(或者sshpass正如其他评论员提到的)。

相关内容