ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs

第一部分:使用ssh key 实现服务器间的免密码交互登陆

步骤1: 安装openssh-clients

[root@001 ~]# yum install openssh-clients -y

步骤2: 创建用户,所有机器同时操作,可直接使用root

[root@001 ~]# useradd test #如果使用root,这里跳过

[root@001 ~]# echo "123456"|passwd --stdin test #如果使用root,这里跳过

步骤3: 用 ssh-key-gen 在本地主机上创建公钥和密钥

[root@001 ~]# su - test #切换到新建的用户,如果直接使用root跳过这里

[test@001 ~]$ ssh-keygen  #全部回车    

命令说明:

ssh-keygen:生成密钥对命令

-t:指定密钥对的密码加密类型(rsa,dsa两种)

-f:指定密钥对文件的生成路径包含文件名

-P(大写):指定密钥对的密码

步骤4:用 ssh-copy-id 把公钥复制到远程主机上

[test@001 ~]$ ssh-copy-id -i .ssh/id_rsa.pub test@192.168.1.233 #使用root用户名需改称root   #上面交互yes 然后输入密码

[test@001 ~]$ ssh-copy-id -i .ssh/id_rsa.pub test@192.168.1.244 #使用root用户名需改称root   #上面交互yes 然后输入密码

---ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys必须设置为600。

-i:指定公钥文件

[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]

[注: 你现在已经可以免密登录到了远程主机上,实现分发只要编辑脚本直接scp到目标服务器如下:]

---------------------------------------这是分割线---------------------------------------

第二部分:使用ssh key + rsync 实现批量管理

[root@001 ~]# echo 'test ALL=(ALL) NOPASSWD:/usr/bin/rsync' >>/etc/sudoers #让目标机器的test用户有执行rsync权限

1.批量分发文件示例脚本

#!/bin/bash

#脚本操作注意:1.将文件复制到随意目录然后进入目录操作2.文件不能使用绝对路径

#脚本原理:使用文件[$1]scp复制到用户的家目录然后使用rsync 同步到相应目录【$2】

. /etc/rc.d/init.d/functions #加入系统函数库

if [ $# -ne 2]

then

echo "请输入参数【本地文件][远程目录]"

exit 1

fi

for n in 233 #IP用空格隔开

do

scp -p22 -r $1 test@192.168.1.$n:~ &>/dev/null #第一条是将某文件发送到目标机器的家目录

ssh -t test@192.168.1.$n sudo rsync $1 $2 &>/dev/null #第二天是将某个文件分发到目标机器的具体位置

if [ $? -eq 0 ]

then

action "分发 $1 成功 " /bin/true

else

action "分发 $1 成功 " /bin/false

fi

done

---------------------------------------这是分割线---------------------------------------

2.批量执行命令示例脚本

#!/bin/bash

if [ $# -ne 1]

then

echo "请输入参数"

exit 1

fi

for n in 233

do

ssh -p22 test@192.168.1.$n $1

done

---------------------------------------这是分割线---------------------------------------

第三部分:sshfs远程挂载+免密码登陆,实现远程挂载

什么是SSHFS:

SSHFS(Secure SHell FileSystem)是一个客户端,可以让我们通过 SSH 文件传输协议(SFTP)挂载远程的文件系统并且在本地机器上和远程的目录和文件进行交互。

SFTP 是一种通过 SSH 协议提供文件访问、文件传输和文件管理功能的安全文件传输协议。因为 SSH 在网络中从一台电脑到另一台电脑传输文件的时候使用数据加密通道,并且 SSHFS 内置在 FUSE(用户空间的文件系统)内核模块,允许任何非特权用户在不修改内核代码的情况下创建他们自己的文件系统。

使用 SSHFS 客户端,在本地 Linux 机器上挂载远程的 Linux 文件系统或者目录步骤。

[root@002-minion ~]# yum install sshfs #只要在客户端安装即可

[root@002-minion ~]# sshfs root@192.168.1.222:/opt /data

The authenticity of host '192.168.1.222 (192.168.1.222)' can't be established.

RSA key fingerprint is c1:7b:29:ca:33:f2:84:b8:c5:91:d6:a5:99:60:46:8e.

Are you sure you want to continue connecting (yes/no)? yes #第一部分介绍了免密码,如果操作过可以实现免密码交互

#卸载命令:fusermount -u /opt/s109

[root@001 ~]#echo '/usr/bin/sshfs root@192.168.1.222:/opt /data' >>/etc/rc.loal

使用下例中个步骤的简单设置而无需输入密码就能登录远程Linux主机。 

ssh-keygen #创建公钥和密钥。 

ssh-copy-id #把本地主机的公钥复制到远程主机的authorized_keys文件上。

ssh-copy-id #也会给远程主机的用户主目录(home)和~/.ssh, 和

~/.ssh/authorized_keys #设置合适的权限。

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs的更多相关文章

  1. linux centOS服务器部署ssh,免密码登陆linux

    登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录 2 创建钥匙, [xun@jzlinux ~]$ ssh-keygen -t rsa Generating public/priv ...

  2. SSH配置免密码登陆

    1.使用SSH-keygen,然后一路回车使之生成id_rsa何id_rsa.pub文件,id_rsa.pub为公匙文件. 2.使用命令:cat ~/.ssh/id_rsa.pub >> ...

  3. mac 免密码登陆服务器

    由于mac os 是基于unix的操作系统终端和linux非常类似,所以不用借助类似于windows下的putty 和CRT工具即可远程登陆linux服务器,只需简单地3步即可免密码ssh远程. 1 ...

  4. Linux中ssh的免密码登陆

    原理: Hadoop的各个节点要实时的进行各种通信的,ssh就是能让各个节点免密码的相互访问相互通信. 操作步骤: 这里用的加密方式是非对称的加密方式,具体的操作是: <1>执行命令ssh ...

  5. 【hadoop】ssh localhost 免密码登陆(图解)

    假设系统中有用户test,属于用户组test, 1. 首先确认能否不输入口令就用ssh登录localhost: $ ssh localhost 输出如下所示: 2. 如果不输入口令就无法用ssh登陆l ...

  6. SSH免密码登陆详解

    为了更好的理解SSH免密码登陆原理,我们先来说说SSH的安全验证,SSH采用的是”非对称密钥系统”,即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户 ...

  7. ssh 免密码登陆设置不成功

    记一次centos6设置免密码登陆设置不成功的解决.自己挖的坑自己填. ssh 免密码登陆设置( 正常情况下是这样的,设置成功后登陆主机是不需要密码的) [root@master .ssh]# ssh ...

  8. SSH认证原理和批量分发管理

    SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [root@m01 ssh]# ls moduli ssh_config sshd_config ssh_host_d ...

  9. Linux使用ssh公钥实现免批量分发管理服务器

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 管理机器外网IP10.0.0.61(内网172.16.1.61) 服务器外网1 ...

随机推荐

  1. BZOJ2038 [2009国家集训队]小Z的袜子(hose)(莫队算法)

    神奇的莫队算法,用来解决可离线无修改的区间查询问题: 首先对原序列进行分块,√n块每块√n个: 然后对所有查询的区间[l,r]进行排序,首先按l所在的块序号升序排序,如果一样就按r升序排序: 最后就按 ...

  2. [JZOJ3106]锻炼

    题目大意: 给你一个$n\times m(n,m\leq 50)$的网格图,其中有一个四连通的障碍物.给定起点和终点,每次你可以走到和当前位置八连通的一个方格内,问绕障碍物一圈最短要走几格? 思路: ...

  3. 四. Java继承和多态7. Java static关键字

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  4. 数据库系统入门 | Not Exisits 结构的灵活应用

    教材 /<数据库系统概念>第六版第三章内容 机械工程出版社:实验软件/Qracle 11g 写在前面 用下面的样例1引出我们讨论的这一类方法. 样例1:使用大学模式,用SQL写出以下查询, ...

  5. 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-通知(Advice)API

    本文翻译自Spring.NET官方文档Version 1.3.2. 受限于个人知识水平,有些地方翻译可能不准确,但是我还是希望我的这些微薄的努力能为他人提供帮助. 侵删. 让我们看看 Spring.N ...

  6. go语言编程小tips

    go语言一个比较方便的特性是你不需要显示的定义一个变量.例如,在c语言中,你想要使用一个int型变量,那么代码如下 int i; i =0; i++; 而在go语言中, i := 0; i++ 这样你 ...

  7. ASP.NET MVC学习---(九)权限过滤机制(完结篇)

    相信对权限过滤大家伙都不陌生 用户要访问一个页面时 先对其权限进行判断并进行相应的处理动作 在webform中 最直接也是最原始的办法就是 在page_load事件中所有代码之前 先执行一个权限判断的 ...

  8. 用Jmeter对数据库执行压力测试

    转载:http://www.cnblogs.com/chengtch/p/6198900.html 在我看来压力测试的压测对象可以分为UI,接口及数据库三个部分吧,对界面及接口进行压测还算熟悉, 定位 ...

  9. java中数组的复制

    数组复制使我们在编程过程中经常要使用到的,在java中数组复制我们大概能够分为两种,一种是引用复制,还有一种就是深度复制(复制后两个数组互不相干). 以下我们就通过測试的方法来具体看看什么是引用复制和 ...

  10. JVM源码分析之FinalReference完全解读

    Java对象引用体系除了强引用之外,出于对性能.可扩展性等方面考虑还特地实现了4种其他引用:SoftReference.WeakReference.PhantomReference.FinalRefe ...