SSH 密钥

SSH 密钥

因此,我需要使用 ssh 以许多不同的用户身份登录到服务器,并且我厌倦了每次从文件中复制密码,其中包含用户的密码。我无法将其更改为不使用密码,它不是我的,它是用于游戏的。

我尝试过使用:

$ cat /path/to/myfile | ssh user@localhost

我收到一条消息,说不会分配伪终端,因为 stdin 不是终端。

我不太确定它应该如何工作。

答案1

SSH 密钥

首先,最适合您的解决方案是创建新的 ssh 密钥对并使用此密钥登录所有服务器(或某些服务器,根据偏好)。如果你不知道怎么做,你可以在 stackexchange 上找到很多次,但是快捷方式:

ssh-keygen; ssh-copy-id your-host

基本上,您应该为密钥设置密码,这样您只需使用一个密码登录一次。

SSH 通行证

但是,如果您确实坚持使用文件中的密码,则可以按照注释中的描述非常简单地做到这一点:

sshpass -f /path/to/myfile ssh user@localhost

但请注意,这并不是使用ssh明文存储的密码的真正首选方法。

预计

expect您可以使用如下脚本执行相同的操作:

#!/usr/local/bin/expect
spawn  ssh [email protected]
expect "password:"
send "your_password\n";
interact

相关内容