每天我都通过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
$
Run Code Online (Sandbox Code Playgroud)
我想自动执行此过程并创建一个bash脚本来为我完成.我不关心安全性,可以在脚本中公开存储我的密码.我也可以在脚本执行时在屏幕上公开输入.所以我创造了这个:
#!/bin/bash          
ssh user@my.server.com
echo mypassword
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我也试过send而不是echo,但它也没有用.请告知是否可以.
mic*_*has 177
如果您无法使用钥匙,请仔细检查.
否则使用期望:
#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact
Run Code Online (Sandbox Code Playgroud)
        mic*_*has 94
创建一个新密钥对:(使用默认值)
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
将公钥复制到服务器:(最后一次的密码)
ssh-copy-id user@my.server.com
Run Code Online (Sandbox Code Playgroud)
从现在开始,服务器应该识别您的密钥而不再要求您输入密码:
ssh user@my.server.com
Run Code Online (Sandbox Code Playgroud)