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
我经常操作我的遥控器 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