shell 免秘钥自动创建

12 篇文章 0 订阅
该博客介绍了一个用于自动登录远程服务器的bash脚本,通过expect库实现SSH登录并复制本地身份验证密钥到远程主机。脚本首先检查本地是否存在ssh密钥对,如果没有则生成新的密钥对,然后使用ssh-copy-id命令将公钥发送到目标服务器,实现免密登录。
摘要由CSDN通过智能技术生成

使用方法: ./sshlogin IP 密码

root@node5 ~]# cat sshlogin 
#!/bin/bash
ip=$1
passwd=$2
port=22

autologin(){
expect -c "
set timeout 5
spawn ssh-copy-id -f root@$1 -p$3
expect {
"*yes/no*" {send "yes"\n;exp_continue}
"*password:" {send "$2"\n}
}
expect eof
"
}
#sh createAuth.sh
createAuth(){
if [ ! -f ~/.ssh/id_rsa.pub ] || [ ! -f ~/.ssh/id_rsa ] ;then
expect <<-EOF
spawn ssh-keygen
expect "*:"
send "\n"
expect {
"*y/n*" {send "y\n";exp_continue}
"*:" {send "\n"}
}
#expect eof
EOF
fi
}
createAuth

autologin $ip $passwd $port
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值