首页 > Linux > shell脚本实现ssh自动登陆

shell脚本实现ssh自动登陆

必要软件包:expect
ssh连接远程主机时候会询问密码,跟su、sudo命令的默认行为一样,是不从stdin读入数据的,传说是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆。
搜索一下不难找到类似的例子,使用expect来完成密码应答:

#!/bin/bash
auto_login_ssh () {
    expect -c "set timeout -1;
                spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
                expect *assword:*;
                send -- $1\r;
                interact;";
}
 
auto_login_ssh password user@host

StrictHostKeyChecking=no参数让ssh默认添加新主机的公钥指纹,也就不会出现出现是否继续yes/no的提示了。
上述expect代码基本可以达到要求了,可实现自动登录

分类: Linux 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.