88

每天我都通过 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,但它也没有奏效。请告知是否可以这样做。

4

2 回答 2

185

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

否则使用期望:

#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact
于 2013-06-04T22:38:23.347 回答
94

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

ssh-keygen

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

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

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

ssh user@my.server.com
于 2013-06-04T21:52:09.290 回答