ssh免密脚本

#!/bin/sh

if [ "$1"x = ""x ]; then
    echo "usage:/opt/bin/auto-ssh.sh user server"
else
    user=$1
    server=$2
    pubkey=`cat ~/.ssh/id_rsa.pub`
    if [ "$pubkey"x = ""x ]; then
       ssh-keygen
       pubkey=`cat ~/.ssh/id_rsa.pub`
    fi
    cmd="mkdir -p ~/.ssh && chmod 700 ~/.ssh && [ ! -e \‘~/.ssh/authorized_keys\‘ ] && touch ~/.ssh/authorized_keys&&echo \"$pubkey\" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
    ssh [email protected]$server \`$cmd\`
fi
时间: 2024-10-25 21:59:10

ssh免密脚本的相关文章

Shell脚本实现SSH免密登录及批量配置管理

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好.像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用.这一节将详细带大家以shell脚本的形式实现

expect一键实现集群ssh免密登入

expect具有非交互式功能 yum -y install expect mkpasswd -l 20   #<==生成随机字符串,-l参数指定生成字符串的长度 非交互密钥分发 添加用户(所有机器) useradd jiege1 echo 123456|passwd --stdin jiege1 id jiege1 10创建密钥对 su - jiege1 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa>/dev/null 2>&1 10一键分发公

linux下expect命令实现批量ssh免密

有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的文字 expect脚本 先看一段shell脚本,实现了ssh自动连接 #!/usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect "

Shell 编程中,在循环里使用ssh免密远程执行命令的注意事项

前提:给自己机器配置ssh免密登录#!/bin/bashcat << 'EOD' > list1234EOD while read linedo if ssh [email protected] "test -f /tmp/a.sh"; then #配置了免密登录,此处不用输入密码 echo "$line file exist." else echo "$line file not exist." fidone < lis

批量实现ssh免密登录

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好.像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用.这一节将详细带大家以shell脚本的形式实现

hadoop集群启动ssh免密登录

1.hadoop对hdfs集群的管理提供两种脚本 hadoop-daemons.sh 本地启动脚本:对集群中的单个节点操作 start-dfs.sh 集群启动脚本:对集群中所有节点统一操作 2.SSH免密登录(防止集群登录超时) ①生成公私钥 1 ssh-keygen -t rsa 在用户目录下有个.ssh文件(隐藏文件),添加authorized_keys文本,将生成的公钥内容重定向(>>)到该文件中. ②直接使用如下命令,可以看到.ssh文件中自动生成了authorized_keys授信文

关于ssh免密互访

想要通过ssh进行免密处理,细节就不赘述了,白度一搜一大把: 但是我遇到了一个情况,就是生成的公钥后无法复制到user/.ssh目录下,因为没有ssh目录(.ssh是隐藏目录,正常情况下ls都无法查看,但是cd可以到目录下) 采用root用户登录一次./ssh就有了 另外注意ssh免密是针对用户,就像你使用root用户创建的公钥是针对root的,我就是使用的iotwh用户,但是在使用scp的时候还是要输入密码,因为我是想要用root用户权限拷贝内容:

SSH免密登录机制

 SSH免密登录机制:(见下图) 1.A先使用ssh-keygen生成一对公钥和私钥:ssh-keygen 2.将A的公钥复制给B一份,并且将其追加到B的授权文件中:ssh-copy-id B 3.接下来ssh B,就能免密登录. 为什么将A的公钥拷给B中的授权文件中就能免密登录了呢? 因为在执行ssh B命令时,B中会用A的公钥随机加密一段密文返回给A,A在接收到密文以后,就会用自己的私钥对密文进行解密, 如果能被解密,就允许免密登录,如果不能被解密,就无法登录.由公钥加密的内容,只能由私钥解

SSH免密登录(并且免yes交互)

问题描述:主机A使用ssh协议远程主机B,默认会开启口令认证,即输入主机B对应用户的登录密码,并且第一次登录时,主机A需验证是否接受来自主机B的公钥,输入"yes/no"完成交互.实现ssh免密登录和免yes交互可提高服务器管理效率. 实现思路:1. 主机A创建密钥对id_rsa,id_rsa.pub,并将公钥id_rsa.pub上传至主机B,保存为/root/.ssh/authorized_keys文件: 2. 修改主机B的sshd服务配置文件/etc/ssh/sshd_config