ssh无密码登录及远程执行脚本要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS7为例。

  测试环境:机器A(10.0.224.80);机器B(192.168.7.172)。现想A通过ssh免密码在B上远程执行命令。

  1、首先在A机下生成公钥/私钥对:(-P表示密码,-P '' 就表示空密码,一次回车即可。在~/.ssh会生成id_rsa和id_rsa.pub两个文件)

[root@registry home]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (直接回车)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e8:a1:c0:cc:d0:2c::::0f:c7::2b::: root@registry
The key's randomart image is:
+--[ RSA ]----+
| +...o E. |
|++ =. * . |
|B o . o o |
|.* + |
| = o S |
| . o . |
| . . |
| |
| |
+-----------------+
[root@registry home]# cd ~/.ssh/
[root@registry .ssh]# ll
总用量 12
-rw-------. 1 root root 1675 4月   5 13:27 id_rsa
-rw-r--r--. 1 root root  395 4月   5 13:27 id_rsa.pub
-rw-r--r--. 1 root root 2492 4月   5 10:52 known_hosts

  2、将A机下的id_rsa.pub复制到B机下

[root@registry .ssh]# scp ~/.ssh/id_rsa.pub root@192.168.7.172:/home
root@192.168.7.172's password:
id_rsa.pub % .4KB/s :

  3、在B机上,将从A机复制的id_rsa.pub添加到~/.ssh/authorzied_keys文件里,并赋予权限

[root@CCC ~]# cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
[root@CCC ~]# chmod ~/.ssh/authorized_keys

  4、测试(注,第一次登录时需要手动输入yes)

    执行远程命令

[root@registry home]# ssh root@192.168.7.172 "cd /home; ls"
calico.tar
laizy
nagios
ubuntu.tar
[root@registry home]# ssh root@192.168.7.172 "ifconfig ens33"
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.7.172 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::20c:29ff:fecd:7e7c prefixlen scopeid 0x20<link>
ether :0c::cd:7e:7c txqueuelen (Ethernet)
RX packets bytes (19.8 MiB)
RX errors dropped overruns frame
TX packets bytes (18.8 MiB)
TX errors dropped overruns carrier collisions [root@registry home]#

    免密码,远程登录

[root@registry home]# ssh root@192.168.7.172
Last login: Tue Apr :: from 192.168.7.146
[root@CCC ~]# ifconfig ens33
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.7.172 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::20c:29ff:fecd:7e7c prefixlen scopeid 0x20<link>
ether :0c::cd:7e:7c txqueuelen (Ethernet)
RX packets bytes (20.0 MiB)
RX errors dropped overruns frame
TX packets bytes (18.9 MiB)
TX errors dropped overruns carrier collisions

SSH 无密码远程执行脚本的更多相关文章

  1. Linux远程无密码登陆并远程执行脚本

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机: 要达到的目的: A机器ssh登录B机器无需输入密码: 加密方式选 rsa|dsa均可以,默认dsa ss ...

  2. SSH非交互式密码授权远程执行脚本

    公司有上百台服务器,需要为每台服务器都执行一个脚本,因为所有服务器的账号密码都是一样的,所以可以不用搭建ansible等自动化运维工具,我们直接通过SSH远程执行即可完成. 本文以三台服务器为例,系统 ...

  3. SSH登录远程主机执行脚本找不到环境变量

    这是因为在Linux上,bash会有四种模式,根据不同的case,Linux会加载不同模式的bash.一般如果你自己直接登录主机,能看到环境变量,但是使用ssh 远程登录执行脚本就找不到环境变量,那么 ...

  4. ssh连接远程主机执行脚本的环境变量问题

    近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...

  5. [ 转载 ] ssh连接远程主机执行脚本的环境变量问题

    近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...

  6. JSch远程执行脚本

    JSch远程执行脚本 2017-02-24 在自动化测试的时候,需要远程操控服务器做一些操作,比如切日.起服务器.执行某些脚本.如何实现? 我们可以利用JSch,远程执行脚本.JSch是Java Se ...

  7. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  8. 批量实现SSH无密码登陆认证脚本

    批量实现SSH无密码登陆认证脚本 问题背景 使用为了让linux之间使用ssh不需要密码,可以采用了数字签名RSA或者DSA来完成.主要使用ssh-key-gen实现. 1.通过 ssh-key-ge ...

  9. jenkins远程执行脚本时报Bad version number in .class file

    这几天在学习jenkins的持续集成和部署,到了最后一步启动服务的时候,遇到了一个这个Bad version number in .class file的报错(如下图). 这个报错在最开始手工部署的时 ...

随机推荐

  1. Go 语言学习

    golang中国 http://www.golangtc.com/ 第三方github学习 https://github.com/Unknwon/go-fundamental-programmingh ...

  2. Layer弹窗组件

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. Layer的开发手册和下载地址 http://layer ...

  3. 算法与数据结构题目的 PHP 实现:栈和队列 由两个栈组成的队列

    思路:同样使用 PHP 的数组模拟栈.栈的特点是先进后出,队列的特点是先进先出,可以用第一个栈(StackPush)作为压入栈,压入数据的时候只往这个栈中压入数据,第二个栈作(StackPop)为弹出 ...

  4. 如何正确使用css中vertical-align

    首先明确,vertical-align只对inline-block和inline元素有效. 在说vertical-align之前,需要先说明一下什么是line box. 浏览器中显示的一行会包含多个非 ...

  5. Synergy 鼠标和键盘共享软件

    http://symless.com/nightly Synergy 正可以让你的多台电脑共享一套键鼠,甚至还可以共享剪贴板,如同一机多屏,并跨平台支持 .

  6. wpa gui

    wpa gui是wpa_supplicant的ui工具. wpa_supplicant源码中包含了wpa_gui, 在目录wpa_gui-qt4中. 先运行wpa supplicant,再运行wpa ...

  7. tensorflow 学习(一)

    改系列只为记录我学习 udacity 中深度学习课程!! 1. 整个课程分为四个部分,如上图所示. 第一部分将研究逻辑分类器,随机优化以及实际数据训练. 第二部分我们将学习一个深度网络,和使用正则化技 ...

  8. 利用开源jPlayer播放.flv视频文件

    最近工作中用到视频播放,在网上搜索对比了好几款开源播放插件后,觉得 jPlayer 是比较不错的,故作此记录! 接下来先快速的展示一下 利用jPlayer播放.flv视频的效果: <!DOCTY ...

  9. broadcom代码中httpd进程启动流程介绍

    Broadcom代码中包含WEB配置管理媒介, 在嵌入式WEB服务器min_httpd基础上改造实现, 其bin名称为httpd,此httpd可以由管理进程有连接后动态启动,并且当一段时间内没有连接到 ...

  10. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布

    (新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...