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

通过ssh和scp连接并自动键入密码,ssh,automation,passwords,scp,Ssh,Automation,Passwords,Scp,我知道这个问题已经被问了好几次了,但我还有一个问题。我的脚本中有一个部分,我通过ssh和scp进行连接,每次运行脚本时,它总是要求输入密码。大多数人可能会回答我应该使用expect或sshpass,但我没有这两种。我试着跑步: compgen-c 而且没有expect和sshpass存在 是否有其他命令?我非常感谢你的帮助。谢谢 更新:由于我只是一个普通用户,因此我也无法安装任何此功能。首先,我以testuser身份登录到服务器A,并输入ff命令: ssh-keygen-d 不要输入任何密码短语

我知道这个问题已经被问了好几次了,但我还有一个问题。我的脚本中有一个部分,我通过
ssh
scp
进行连接,每次运行脚本时,它总是要求输入密码。大多数人可能会回答我应该使用
expect
sshpass
,但我没有这两种。我试着跑步:

compgen-c

而且没有
expect
sshpass
存在

是否有其他命令?我非常感谢你的帮助。谢谢


更新:由于我只是一个普通用户,因此我也无法安装任何此功能。

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

ssh-keygen-d

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

然后
scp
将文件
rsa_id.pub
(公钥)发送到服务器B

scp~/.ssh/id_dsa.pubtestuser@B:/home/testuser/.ssh/authorized_keys 2

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


如果不想设置无密码访问的密钥(违反规则?),可以设置“SSH连接共享”

将以下行插入
.ssh/config
文件:

ControlMaster auto
ControlPath /tmp/ssh_%r@%n:%p
ControlPersist 8h
现在,当您使用该配置从机器登录到服务器时,它将第一次询问您的密码,并且在8小时空闲时间过去之前不会再次询问(因此,通常每天都会询问您一次)


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

顺便说一句,即使您使用无密码访问,速度提升优势仍然适用。