我正在编写用于SSH服务器的脚本。
我有需要验证码和密码登录的服务器,我希望脚本可以每天登录服务器并在服务器上运行一些脚本(crontab)。
我只能在服务器上进行访问,而无权在服务器上设置crontab。 所以我想在自己的服务器上设置crontab和脚本。
(如果我无法在服务器上运行该脚本,至少我想通过一个命令行命令登录我的服务器。)
蠕虫流量
user ~% ssh xxxx@example.com
The authenticity of host 'example.com' can't be established.
RSA key fingerprint is SHA256?[yyyyyyyyyyyyyyyyyyy].
Are you sure you want to continue connecting (yes/no/[fingerprint])? (yes)
Verification code: (input)
Password: (input)
xxxx$ ./a.sh
我在下面写命令
print "(verification code)\n(pwd)\n" | ssh -t -t xxxx@example.com
我认为该命令会将“ 代码”,“ 密码”传递给ssh并执行单行命令登录。
但是输出是
Verification code: | (cursor)
任何人都可以帮助我解决此问题(让脚本自动按Enter)??
答案 0 :(得分:0)
使用“ sshpass”,例如:
for line in open('file.csv'):
do_something(line)
答案 1 :(得分:0)
首先,如果“验证码和密码登录”是服务器中唯一的身份验证选项设置,我没有答案。
由于您在问题中没有提及基于密钥的身份验证,因此建议您调查是否是一种选择。
使用它为发送命令的机器生成私钥/公钥:
ssh-keygen -t rsa
通常会在〜/ .ssh(id_rsa和id_rsa.pub)中创建密钥。
然后,使用它来授权服务器上的登录:
ssh-copy-id xxxx@example.com
这会将您的公钥(〜/ .ssh / id_rsa.pub)添加到服务器中的〜/ .ssh / authorized_keys中。