SSH如何预先输入密码?

How can I input password in advance with SSH?

我经常操作我的遥控器 vps.I 每次在 ssh 命令行之后写一些脚本到我的 work.But,我必须输入密码 manually.How 我可以提供吗脚本中的密码,以便它自动运行,虽然我知道它不安全,但我的目的只是为了方便。 我尝试了很多方法。 详细来说,如果我有一个 vps 配置为流程:

Protocol=SSH

Host=122.122.122.122

Port=22

UserName:root

Password:mypassword

我会写个脚本如花来连接vps:

#!/bin/sh
ssh -p 22  root@122.122.122.122
#Other command flowers

然后我运行 script.Before 其他命令运行s,我必须输入密码。

root@122.122.122.122's password:

所以我想知道我是否有任何解决方案来避免手动输入密码。

方法一: 首先创建一个新的密钥对:

ssh-keygen

将 public 密钥复制到服务器:

ssh-copy-id user@my.server.com

现在服务器应该可以识别您的密钥,因此不会再要求您输入密码了:

ssh user@my.server.com

方法二:

使用期望

#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact