在写shell脚本或者自动化部署的过程中,经常会遇到两台机器之间没有信任,机器之间传文件要输密码的问题.除了用expect这种比较复杂的方法外,最简单的应该就是在两台虚拟机之间创建信任了.具体步骤如下:
例如,在ip1和ip2之间创建信任,使ip1 ssh到ip2时不需要输入密码:
1.在两台机器/root/.ssh目录下执行:ssh-keygen,为“ssh”生成、管理和转换认证密钥
2.1
如果知道ip2的密码,可以在ip1的.ssh目录下,直接执行命令:ssh-copy-id ip2,输入一遍ip2的密码.这样ip1就可以直接ssh到ip2了
2.2
如果不知道ip2的密码,可以拿到ip1 .ssh目录下的id_rsa.pub公钥,将里面的内容复制到ip2的authorized_keys(若没有就创建)认证内,这样ip1就可以ssh到ip2了.
3.其他可能遇到的问题:
3.1
若将公钥拷贝到authorized_keys内仍需要密码,可能是目录或者文件权限问题,修改下其权限.
chmod 700 .ssh
chmod 600 ~/.ssh/authorized_keys