博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux ssh key免密码分发
阅读量:7096 次
发布时间:2019-06-28

本文共 2283 字,大约阅读时间需要 7 分钟。

具体需求:

在同一用户hequan下 实现 A 从本地分发数据到B。过程中不需要密码提示

创建用户

#useradd hequan    # id hequan 

#echo 123456 | passwd  --stdin hequan

# su - hequan

RSA 既可以加密也,也可以数字签名

DSA     只能用于数字签名

开始创建密钥

[hequan@A ~]$ ssh-keygen -t dsa              默认RSA

Generating public/private dsa key pair.

Enter file in which to save the key (/home/hequan/.ssh/id_dsa):

Created directory '/home/hequan/.ssh'.

Enter passphrase (empty for no passphrase):

[hequan@A ~]$ ll  -l .ssh/

总用量 8

-rw------- 1 hequan hequan 668 3月  28 04:07 id_dsa              私钥   保留

-rw-r--r-- 1 hequan hequan 598 3月  28 04:07 id_dsa.pub         公钥   分发

[hequan@A ~]$ ll  -ld .ssh/

drwx------ 2 hequan hequan 4096 3月  28 04:07 .ssh/

分发公钥

格式:               ssh-copy-id [-i [identity_file]] [user@]machine

[hequan@A ~]$ ssh-copy-id  -i  .ssh/id_dsa.pub  hequan@192.168.10.11      分发

Are you sure you want to continue connecting (yes/no)? yes

.ssh/auhorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[hequan@B ~]$ ll  -l  .ssh/ 

-rw------- 1 hequan hequan 598 4月   4 04:49 authorized_keys

[hequan@A ~]$ ssh   hequan@192.168.10.11   不要密码

[hequan@B ~]$

测试发文件

[hequan@A ~]$ echo hequan > hequan.txt

[hequan@A ~]$ scp  hequan.txt  hequan@192.168.10.11:~

如果测试时,ssh特别慢,可以修改如下参数。

# vi /etc/ssh/sshd_config

UseDNS no

GSSAPIAuthentication no

# /etc/init.d/sshd restart

[hequan@A ~]$ scp -rp   /etc/  hequan@192.168.10.11:~          发送目录  到 ~

[hequan@A ~]$ scp -rp    hequan@192.168.10.11:~/etc/   /tmp/       把B的/etc/目录  拷到本机/tmp

免密码登陆小结:

     免密码验证是单向的

     基于用户的,最好不要跨用户

     连接慢 (可以看上面的解决办法)

     批量分发初始都需要输入一次密码,并且第一次连接要确认(expect)

 

[root@A ~]# ssh -v root@192.168.10.11                    -v 调试 整个连接过程

测试脚本

#!/bin/sh

if  [ $#  -ne  1 ]

        then

        echo   "/bin/sh  $0   arg1"

    exit  1

fi

for   n  in 11

do

        scp  -rp  $1 hequan@192.168.10.$n:~;

done

批量分发批量处理   权限问题

visudo

hequan  ALL=(ALL)       NOPASSWD:/bin/cp

# visudo -c

/etc/sudoers:解析正确

远程sudo

# Disable "ssh hostname sudo <cmd>", because it will show the passwor

d in clear.

#         You have to run "ssh -t hostname sudo <cmd>".

Defaults    requiretty                或者注释掉这一条

 $ scp      -rp   quan    hequan@192.168.10.11:~                    先把quan拷贝到家目录,

$ ssh    hequan@192.168.10.11 -t  sudo /bin/cp  ~/quan  /tmp          然后拷贝quan文件到 /tmp    最后是root权限

rsync

chmod u+s  `which rsync`             有root的权限   suid 

-rwsr-xr-x 1 root root 415000 10月 31 2013 /usr/bin/rsync

ssh    hequan@192.168.10.11    /usr/bin/rsync   ~ /yy    /tmp

小结:

     利用root

     利用visudo   推荐2

     利用rsync               

本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1762853,如需转载请自行联系原作者
你可能感兴趣的文章
mycncart操作使用教程 - 布局
查看>>
velocity eclipse编辑插件
查看>>
Node.js 重点
查看>>
selenium面试题总结
查看>>
编写saltstack 扩展模块
查看>>
配置SecondaryNameNode和NameNode分离
查看>>
TiKV 源码解析系列 - Lease Read
查看>>
线程池构造参数分析
查看>>
CentOS6.8手动安装MySQL5.6
查看>>
类型-字符串:Heredoc语法结构和Nowdoc语法结构
查看>>
多线程程序中操作的原子性
查看>>
符号化
查看>>
浅谈continue和break
查看>>
COS文件上传小结
查看>>
Maven 修改本地存储库位置
查看>>
hibernate一对多关联关系配置经验
查看>>
我的第一个GO接口←一个前端眼中的GO(一)
查看>>
注册全局组件
查看>>
[日推荐]『奢客奢侈品』奢侈品交易平台
查看>>
[日推荐]『与你见字如面』信息时代的一股清流
查看>>