在集群管理和配置中有很多命令要在各个节点中发送(特别是Master->Worker),大家都不希望发送每一个命令时都输入一次密码,因此常常先配置实现Master无密码登录到所有的Worker节点。由于大多的Linux发行版本都预装有openssh-client,常用的方法就是使用ssh来实现免密码登录,下面以Ubuntu为例说下ssh的相关配置及注意事项

  网上有关ssh-keygen命令的介绍可找到很多,想了解更多可参考这篇博文(ssh-keygen命令的用法[转]

  在Master的终端中输入:ssh-keygen -t rsa

  会有以下输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/liang/.ssh/id_rsa): //直接回车
Created directory '/home/liang/.ssh'.
Enter passphrase (empty for no passphrase): //直接回车
Enter same passphrase again: //直接回车
Your identification has been saved in /home/liang/.ssh/id_rsa.
Your public key has been saved in /home/liang/.ssh/id_rsa.pub.
The key fingerprint is:
c7::ac:::::f0:f1::f1:6f::4f:6c:f2 liang@liang-pc
The key's randomart image is:
+--[ RSA ]----+
| o +.ooo|
| . + +.=B|
| . + .*=|
| . * . E|
| S * o|
| o . |
| |
| |
| |
+-----------------+

  此时在用户目录下生成.ssh文件夹(默认是隐藏的,可使用ctrl+h命令来 显示/隐藏 隐藏文件),将.ssh下的id_rsa文件内容copy到Worker节点用户目录下的.ssh/authorized_keys中(~/.ssh/authorized_keys),如果配置完还不能无密码访问,可修改下authorized_keys的权限试下,命令:chmod 600 authorized_keys。


ubuntu中安装使用sshkey产生key以后,使用ssh localhost测试一下,出现错误提示:connect to host localhost port 22:Connection refused错误,造成这个错误的原因是由于ssh-server没有安装或者没有启动。ubuntu中默认只安装openssh-client,可以使用sshkey等命令,让我误以为已经将openssh-server也安装了
1、使用命令ps -e | grep ssh,发现只有一个ssh-agent进程,没有sshd相关进程,说明ssh-server没有启动
2、使用命令/etc/init.d/ssh -start启动server进程,提示ssh不存在,才发现没有安装server
3、使用命令sudo apt-get install openssh-server命令安装,提示:
下列软件包有未满足的依赖关系:
 openssh-server : 依赖: openssh-client (= 1:5.9p1-5ubuntu1.4) 但是 1:6.0p1-3ubuntu1.2 正要被安装
说明ubuntu提供的openssh-client是6.0p1-3ubuntu1.2版本的,而提供的openssh-server是5.9p1-5ubuntu1.4版本的,所以会有以上提示,这点搞得太不好了(后来想想可能是我更换了软件源的事)
4、解决此类的问题的方法是让client和server的版本一致,我为了图方便直接在开源中国镜像站中下载了openssh-server_6.0p1-3ubuntu1.2_i386.deb,双击安装,问题解决。
 

  
一切就绪后可在终端上输入ssh localhost date测试下是不是配置正确
liang@liang-pc:~$ ssh localhost date
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is 8d:f7:ae::3c::::b3:c8:5e::7b::b1:b2.
Are you sure you want to continue connecting (yes/no)? //输入yes,若直接回车会Host key verification failed.
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
2015年 01月 05日 星期一 14:55:29 CST
liang@liang-pc:~$ ssh localhost date//再次输入
2015年 01月 05日 星期一 14:55:33 CST

ssh使用笔记的更多相关文章

  1. ssh自学笔记

    Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...

  2. SSH学习笔记

    Struts2登录模块处理流程: 浏览器发送请求http://localhost/appname/login.action,到web应用服务器: 容器接收到该请求,根据web.xml的配置,服务器将请 ...

  3. [SSH] SSH学习笔记 - 远程登录

    1.SSH登陆/登出命令 $ ssh <hostname> #登入 $ exit #登出 known_hosts 每个用户都有自己的known_hosts文件,路径:(username)/ ...

  4. [JavaEE] SSH框架笔记_eclipse搭建SSH框架详解

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibe ...

  5. [Java] SSH框架笔记_S2SH整合步骤

    http://tech.ddvip.com/2009-09/1253783051134206.html http://www.blogjava.net/liu0909/archive/2009/07/ ...

  6. [Java] SSH框架笔记_框架整合示例(一)

    本文描述的是框架SSH集成的示例,由于在这个过程中有一些小的细节容易被遗忘,特别撰写了一篇小的博文来记录这个过程,希望对自己以及后来者能够起到积极意义. 本文中使用的框架和版本号为: struts-2 ...

  7. [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  8. SSH整合笔记

    SSH:spring+struts+hibernate. 一:所需jar: 需要注意的是: hibernate+spring需要Spring-orm-xxx.jar struts+spring需要st ...

  9. ssh登陆笔记📒

    ssh的配置 ssh的配置文件在/etc/ssh下,有两种配置文件,ssh_config和sshd_config. ssh_config是针对客户端的配置文件, sshd_config是针对服务端的配 ...

  10. SSH阅读笔记

    1.SSH单阶人脸段检测器,在不同层检测不同scale的人脸,而不是使用mtcnn中金字塔的方式,从而实现加速. 2.SSH的整体结构,3个module的stride分别为8,16,32,使用不同的感 ...

随机推荐

  1. JS的八大数据类型

    js中的数据类型,包括基本数据类型(Number,String,Boolean, Undefined,Null)和   复杂(引用)数据类型(Object,Array,Function) 基本数据类型 ...

  2. 洛谷P1929 迷之阶梯

    P1929 迷之阶梯 题目描述 在经过地球防卫小队的数学家连续多日的工作后,外星人发的密码终于得以破解.它 告诉我们在地球某一处的古老遗迹中,存在有对抗这次灾难的秘密武器.防卫小队立即赶 到这处遗迹. ...

  3. 第三方数据库管理工具Navicat使用教程

    一.Navicat Premium是一个功能强大的第三方数据库管理工具,可以连接管理MySQL.Oracle.PostgreSQL.SQLite 及 SQL Server数据库. 使用Navicat软 ...

  4. qt加载背景图片的一种方式

    //加载背景图片 void LCTGrid::loadBgPicture() { QImage image; QPalette palette; image.load(m_sPicturePath); ...

  5. Directx11教程(4) 一个最基本D3D应用程序(2)

    原文:Directx11教程(4) 一个最基本D3D应用程序(2) 接着上篇教程的代码,本篇加入基本的D3D代码,实现一个完整的D3D11程序框架. 我们增加一个新类D3DClass, 用来处理3D渲 ...

  6. 关于 SSD 的接口和相关名词(2019-09-10)

    关于 SSD 的接口和相关名词 了解了很多天的 SSD,太多的名词. 先记录一下. SATA MSATA M2 NVME NGFF U2 TODO: 后续收集相关信息.

  7. Python学习之路14☞多线程与多进程

    一 进程与线程的概念 1.1 进程 进程定义: 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成:数 ...

  8. postman测试接口各种类型传值

    postman测试接口各种类型传值 标签: postman测试 json串 Map 2018年01月27日 02:32:00 145人阅读 评论(0) 收藏 举报 1.Map类型或实体类类型传值,即j ...

  9. UIView 判断是否visible

    if(self.view == [(MyAppDelegate *)[[UIApplication sharedApplication] delegate].window.subviews objec ...

  10. 【LINUX】降级安装低版本GCC,G++

    由于要制作crosstool,需要用到gcc 4.1.2来编译,而Ubuntu 12.04下的gcc版本是gcc 4.6.3,高版本的gcc也不是好事啊. 下面介绍gcc 4.1.2的编译安装方法: ...