主机间信任关系建立之ssh+sshpass批量化部署

ssh通过公钥实现身份认证,可以手工创建.ssh目录并将公钥拷贝至远程主机。

也可通过ssh-copy-id命令将公钥传递至远程主机。

对于批量化部署:

1首先要解决的是身份认证的问题(root密码应该统一)。

2然后通过sshpass的-p密码或-f指定密码文件的方式来传递密码,实现认证登录。

3通过sshpass配合ssh-copy-id命令执行公钥传递

脚本实现公钥的批量分发:

1 sshpass的安装

下载sshpass-1.06

解压并安装

tar zxvf sshpass-1.06

./configure

make&&make install

2脚本

#!/bin/bash

. /etc/init.d/functions

usage () {

if [ ! $# -eq 2 ];then

echo "Usage:/bin/sh $0 -f host_list_file"

exit 0

fi

}

auth () {

ID=`id|awk -F"[=()]+" ‘{print$2}‘`

if [ $ID -ne 0 ];then

echo "This tool should be running under root. Exit."

exit 0

fi

}

pubkey () {

#Create ssh_key

if [ ! -f ~/.ssh/id_dsa ];then

echo "The ssh key is not exist. It will be created..."

echo -e "\n"|ssh-keygen -t dsa -N "" >/dev/null2>&1

echo "The key is created successful."

fi

#Disable StrictHostKeyChecking

grep "^StrictHostKeyChecking no"/etc/ssh/ssh_config >/dev/null 2>&1

if [ $? -ne 0 ];then

echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config&>/dev/null

fi

}

deploy () {

#input root and  password

echo "Deploying pub key."

read -p "Please type the remoteaccount:" ac

read -s -p "Please type the remotepassword:" pw

echo

#Deploy pub key

if [ -f $Hosts ];then

forn in `cat $Hosts`

do

sshpass -p $pw ssh-copy-id -i .ssh/id_dsa.pub [email protected]$n &>/dev/null

if [ $? -eq 0 ];then

action "Deploying pub_key for $n......Success!" /bin/true

else

action "Deploying pub_key for $n......Failed!" /bin/false

fi

done

else

exit 0

fi

}

usage $1 $2

Hosts="$2"

auth

pubkey

deploy

3测试

创建主机列表文件hosts

cat /root/hosts

192.168.1.104

192.168.1.105

执行脚本sh deploy_pubkey.sh -f host

然后就可以通过ssh/sshpass/pssh等工具进行远程管理了。

时间: 2024-10-10 00:26:40

主机间信任关系建立之ssh+sshpass批量化部署的相关文章

Solaris ssh配置主机间信任关系

假设需要配置从主机com00biiitf001登录主机ols00biiitf001时不需要密码,则采用以下步骤配置: com00biiitf001上产生公用/私有密钥对 $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/export/home/jyu/.ssh/id_rsa): Created directory '/export/home/jyu/.

ssh添加信任关系,使ssh,scp命令不需要 输入密码验证

简单的说明一下方法: 首先在本机上敲命令:ssh-keygen -t sra    \生成rsa的密钥 (这 个命令生成一个密钥对:id_rsa和id_rsa.pub.他们默认被保存在~/.ssh/目录下.可以将id_rsa.pub改名为 local_rsa.pub以免与远程主机上的id_rsa.pub重名.在生成过程中会要求输入pass phrase,这个是用来保护私钥的使用的,即每次你使用私钥的时候需要先输入这个密码,因此这里不要输入任何字符,直接回车.) 把生成的公钥拷贝到需要的机器上的/

此工作站和主域间信任关系失败的解决

相信用域管理的童鞋都会遇到一个问题:在域账户登录的时候有时会出现"此工作站和主域间信任关系失败" 那么遇到这种情况该如何解决的呢? 跟我走: 拔掉网线,登录系统 在用户账户中把administrator账户打开,并设密码 插上网线,退域,重启,用administrator账户登录 重新加域,刷新策略即可

linux建立单向信任关系(让ssh连接不用输入密码)

传统手工建立单向信任关系 说明:当我们使用ssh命令时,会发现每次都得输入密码,本次实验可以实现ssh连接时不用输入密码. 一.在server1(192.168.199.128)上 1.首先新建用户 #useradd liu 2.切换用户 #su - liu 3.生成密钥 #ssh-keygen(都敲回车) 4.建立公钥文件 #cd  .ssh/ #cat id_rsa.pub >authorized_keys #chmod 600 authorized_keys 二.在server2(192.

SSH 信任关系建立

需求hostA通过ssh登陆到hostB,实现免密登陆,以及SCP的免密传送文件 由于hostA要登陆到hostB ? ? 首先需要在hostA上生成密钥,使用以下命令 ssh-keygen -t rsa 按3个回车 然后可以使用ls -atrl命令查看当前用户目录下的.ssh目录下的文件内容 .ssh目录下生成的文件 ? ? authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 k

Linux 批量建立信任关系,实现ssh无password登陆的脚本

作用: 把当前机器的ssh公钥拷贝到其它机器.以实现从当前机器能够ssh无password登陆到其它机器 用法: 1)把要加入的ip地址写入到一个文件里.比方host 2)把脚本保存为sh文件,如 install_ssh.sh 设置可运行权限 3)改写脚本中的password设置.眼下仅仅支持固定几个password. 4)  运行命令 sh install_ssh.sh <host 代码: #!/bin/sh auto_ssh_copy_id() { local HOST=$1 local P

Linux 批量建立信任关系,实现ssh无密码登陆的脚本

作用: 把当前机器的ssh公钥复制到其他机器,以实现从当前机器可以ssh无密码登陆到其他机器 使用方法: 1)把要添加的ip地址写入到一个文件中,比如host 2)把脚本保存为sh文件,如 install_ssh.sh 设置可执行权限 3)改写脚本中的密码设置,目前只支持固定几个密码. 4)  执行命令 sh install_ssh.sh <host 代码: #!/bin/sh auto_ssh_copy_id() { local HOST=$1 local PASSWD=$2 expect -

Oracle Study之-AIX6.1构建主机之间的信任关系(ssh)

Oracle Study之-AIX6.1构建主机之间的信任关系(ssh)    在AIX环境下构建主机信任关系首选rsh,但在构建Oracle 11g RAC时需要ssh支持,以下文档介绍如何在AIX6.1下构建ssh的信任关系.    默认aix没有安装ssh软件包,首先要安装ssh软件包: 1.下载.解压软件包 [[email protected] ssh]#lsOpenSSH_5.8.0.6102.tar.Z  openssl-0.9.8.1802.tar.Z  ssh.txt 解压后通过

建立集群间ssh信任关系

目的要求 一套集群里有10台主机,建立ssh信任关系,使集群内所有主机可以不输密码互相访问. 解决方法 1.在server1生成私钥 ssh-keygenssh-copy-id [email protected] scp -rp id_rsa [email protected]:root/.ssh/ 2.查看192.168.1.2上的私钥和 authorized_keys 1 root root 409 Jul 5 20:35 authorized_keys 1 root root 1675 J