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