OSX 上的 Shell 脚本打开 SSH 并登录

OSX 上的 Shell 脚本打开 SSH 并登录

可能重复:
如何设置 SSH 以便不需要输入密码?

我正在尝试编写一个 shell 脚本,以便每次启动时将 MBP 连接到服务器(用于隧道传输)。我在输入密码时遇到了问题,您能提供建议吗?

我在网上找到了这个脚本(经过修改),但是 spawn 和 send 似乎不存在?

echo "Logging in and creating local proxy"
spawn ssh -2 -R 7654:localhost:7654 -A -D 1080 [email protected]
match_max 100000
# Look for password prompt
expect "*?assword:*"
# Send password
send -- "PASSWORD\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
echo "All done"

还有人知道如何正确地做到这一点吗?

答案1

此脚本通过提供密码和登录名来解决登录问题。无论如何,将其写入文件都是很危险的。您最好以某种方式配置 ssh,以避免提供登录密码,例如,您可以使用 ssh 密钥来实现这一点。在您的工作站上生成密钥 ssh-keygen,它将在 ~/.ssh/ 中创建密钥,公钥是 id_rsa.pub。然后在 server.com 的根帐户中将您的公钥添加到 ~/.ssh/authorized_keys。

答案2

您应该使用 设置无密码 ssh 登录ssh-agent。请参阅这个问题了解操作方法。

相关内容