通过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命令。顺便说一句,即使您使用无密码访问,速度提升优势仍然适用。