通过 ssh 和 scp 连接并自动输入密码

Connect through ssh and scp and type in password automatically

我知道这个问题已经被问过好几次了,但我遇到了另一个问题。我在我的脚本中有一部分通过 sshscp 连接,每次我 运行 脚本它总是要求输入密码。你们中的大多数人可能会回答我应该使用 expectsshpass,但我没有这两个。我试过 运行ning:

compgen -c

并且不存在 expectsshpass

是否有任何替代命令?我将衷心感谢您的帮助。谢谢

更新:我也无法安装任何这些,因为我只是一个普通用户。

首先我以testuser登录服务器A,输入ff命令:

ssh-keygen -d

不要输入任何密码。 这将在文件夹 ~/.ssh/

中生成文件

然后scp文件rsa_id.pub(public键)到服务器B.

scp ~/.ssh/id_dsa.pub testuser@B:/home/testuser/.ssh/authorized_keys2

反之亦然(如果您想同时访问两者)。然后您现在可以从一台服务器传输到另一台服务器,而无需询问您的密码。

source

如果您不想为无密码访问设置密钥(违反规则?),您可以设置 "SSH connection sharing"。

将这些行插入到您的 .ssh/config 文件中:

ControlMaster auto
ControlPath /tmp/ssh_%r@%n:%p
ControlPersist 8h

现在,当您从具有该配置的机器登录服务器时,它会第一次询问您的密码,并且在闲置 8 小时后才会再次询问(因此,您会得到通常每天问一次。

它所做的是在后台保持连接打开,然后为所有 SSH 会话重新使用相同的连接。这提供了一个有用的连接速度提升,并且意味着您不需要重新验证。总而言之,它非常适合加速脚本化 SSH 和 SCP 命令。