睡前水一文-、-
假设场景就是有一个三节点的集群要配置免密登录 当然可以手动配置,但是要是30个节点呢…… 233
1、首先各自生成本机的公钥和私钥文件
ssh-keygen -t rsa
2、执行文末的“蹩脚”的脚本,为啥说蹩脚呢……因为并没有完全做到我开始想要的偷懒效果,比如 可能会提示你缺少 .pub文件等问题。 之后我改下再更新- - ! 要是我还记得的话
#!/bin/bash
SERVERS="server1 server2 server3"
PASSWORD=code
BASE_SERVER=server1
auto_ssh_copy_id(){
expect -c "set timeout -1;
spawn ssh-copy-id $1;
expect {
*(yes/no)* {send -- yes\r;exp_continue;}
*password* {send -- $2\r;exp_continue;}
eof {exit 0;}
}";
}
auto_login_without_pwd(){
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
done
}
auto_login_without_pwd
PS: 粗心的人别忘了给脚本加权限
su chmod a+x **.sh
最后再啰嗦一句…… 你的 .ssh文件权限 不能超过711 也就是除了root用户外 其他用户最多只能有执行权限。不然…… 嘿嘿 你试试就知道了