Shell设置免密登陆
面交互命令行方式
sshpass -p 密码 ssh -o StrictHostKeyChecking=no -o ConnectTimeout=3 user@1.1.1.1 "uptime"
- 方式1:
#!/bin/bash
IPLIST="
11.7.171.36
11.7.171.37
"
rqm -qa sshpass &> /dev/null || yum -y install sshpass
[ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa -P ''
export SSHPASS='root'
for ip in $IPLIST
do
sshpass -e ssh-copy-id -o StrictHostkeyChecking=no $ip
done
- 方式2:
#!/bin/bash
host_file="host_tmp.txt"
host=$1
passwd=$2
username="root"
[ $# -ne 2 ] && echo "Please input parameter host password" && exit
echo "$host $username $passwd " >$host_file
while read host ;do
#ip user passwd
ip=$(echo $host|awk '{print $1}')
user=$(echo $host|awk '{print $2}')
passwd=$(echo $host|awk '{print $3}')
expect <<EOF
spawn ssh-copy-id -i $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$passwd\n"}
}
expect eof
EOF
echo "$host -- $user 完成了免密登录!"
done < $host_file
rm -f $host_file
ansible
---
- hosts: auth
gather_facts: no
tasks:
- name: install ssh key
authorized_key: user=root
key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
state=present
ansible-playbook ssh-login.yml --ask-pass

浙公网安备 33010602011771号