如何使用bash输入ssh密码?

时间:2013-06-04 21:42:57

标签: bash ssh

我每天都通过ssh连接到服务器。我经历了这个例程:

IC001:Desktop user$ ssh user@my.server.com
user@my.server.com's password: 

Last login: Tue Jun  4 10:09:01 2013 from 0.0.0.0
$

我想自动执行此过程并创建一个bash脚本来为我完成。我不关心安全性,可以在脚本中公开存储我的密码。我也可以在脚本执行时在屏幕上公开输入。所以我创造了这个:

#!/bin/bash          
ssh user@my.server.com
echo mypassword

但它不起作用。我也尝试了send而不是echo,但它也没有用。请告知是否可以这样做。

2 个答案:

答案 0 :(得分:172)

仔细检查您是否无法使用钥匙。

否则使用expect:

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

答案 1 :(得分:91)

创建一个新的密钥对:(使用默认值)

ssh-keygen

将公钥复制到服务器:(最后一次使用密码)

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

从现在开始,服务器应识别您的密钥,而不再要求您输入密码:

ssh user@my.server.com