以下针对的是openssh,而不是ssh,也不是ssh2。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过,操作环境为CentOS Linux release 7.0。

如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定:

SSH2

ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on

OpenSSH

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

本文假设被登录的远程机器名为hadoop-138-24,对应的IP为192.168.138.24,使用的用户名为hadoop。

第一步,修改所有被登录机上的sshd配置文件/etc/ssh/sshd_config:

1) 将PermitRootLogin值设置为yes,也就是取掉前面的注释号#(如果不是配置root无密码登录,跳过这一步)

2) 以下几行注释取消:

#RSAAuthentication=yes

#PubkeyAuthentication=yes

#AuthorizedKeysFile=.ssh/authorized_keys

PubkeyAuthentication仅针对ssh2,默认为yes,所以可不取消注释。

RSAAuthentication仅针对ssh1,默认为yes,所以可不取消注释。

AuthorizedKeysFile默认为.ssh/authorized_keys,所以也可不取消注释。

可以通过“man sshd_config”了解到更多信息。

查看OpenSSH的版本:

# sshd -V

unknown option -- V

OpenSSH_6.4p1, OpenSSL 1.0.1e-fips 11 Feb 2013

3) 重启sshd服务:service sshd restart

手工启动方式:

/usr/sbin/sshd -o pidFile=/var/run/sshd_56000.pid -f /etc/ssh/sshd_config.l

或者:

/usr/sbin/sshd -D -f /etc/ssh/sshd_config.l

参数“-D”表示sshd进程不成为守护进程。

如果不指定参数“-o”,则默认为/var/run/sshd.pid,存储了sshd守护进程的pid。

/etc/ssh/sshd_config文件中的Protocol配置项指定sshd支持的协议版本,如:

“Protocol ”表示为ssh2,多版本使用逗号分隔(无顺序要求):Protocol 1,2或Protocol 2,1。

对于OpenSSH_5.3p1默认值为2,1。对于OpenSSH_6.4p1默认值为2。

第二步,在所有登录机上,执行以下步骤:

1) 进入到用户HOME目录下的.ssh子目录:cd ~/.ssh

2) 生成私钥和公钥文件:ssh-keygen -t rsa

出现提示后,一路直接回车。成功之后,会在用户的主目录(HOME目录)下生成私钥文件id_rsa,和公钥文件id_rsa.pub。

3) 运行ssh-copy-id,将公钥文件id_rsa.pub上传到远程被登录的机器:

ssh-copy-id -i id_rsa.pub hadoop@hadoop-138-24

注意,这里没有指定远程机器的目录,ssh-copy-id命令会自动将id_rsa.pub的内容放到远程机器的hadoop用户的主目录的.ssh子目录的authorized_keys文件尾。

如果没有ssh-copy-id命令,则可以使用scp复制过去,手工追加到authorized_keys文件尾,如:scp id_rsa.pub hadoop@hadoop-138-24:/data/hadoop/.ssh(这里假设hadoop用户的HOME目录为/data/hadoop),然后登录hadoop-138-24,进入/data/hadoop/.ssh,执行:

cat id_rsa.pub >> authorized_keys

接下来,就可以无密码登录远程机器:ssh hadoop@hadoop-138-24。当然也可以以IP方式登录,如:ssh hadoop@192.168.138.24。

如果按上述操作的之后,仍然不能免密码登录,则检查目录.ssh的权限,如同下面这样:

drwxrwxr-x 2 hadoop hadoop 4096 Nov 24 14:27 .ssh

则是登录时仍然需要密码,需要去掉其他用户对.ssh目录的写权限:

drwx------ 2 hadoop hadoop 4096 Nov 24 14:27 .ssh

对被登录机器上的文件authorized_keys也有同样的要求,下面这样是OK的:

-rw------- 1 hadoop hadoop  403 Nov 24 14:27 authorized_keys

相关参考:

SSH2免密码登录OpenSSH:http://blog.chinaunix.net/uid-20682147-id-4212097.html

两个SSH2间免密码登录:http://blog.chinaunix.net/uid-20682147-id-4212099.html

OpenSSH免密码登录SSH2:http://blog.chinaunix.net/uid-20682147-id-4212094.html

两个openssh间免密码登录的更多相关文章

  1. 两个SSH2间免密码登录

    SSH2免密码登录OpenSSHhttp://blog.csdn.net/aquester/article/details/23836299 OpenSSH免密码登录SSH2http://blog.c ...

  2. 两步完成ssh免密码登录

    1.生成公钥/私钥 ssh-keygen -N '' 生成公钥在/root/.ssh目录下. 2.分发公钥 ssh-copy-id root@192.168.137.141 192.168.137.1 ...

  3. openssh设置免密码登录远程服务器

    主机 host | 远程机器 server 目标:从host登录到server,免密码输入 host机器: ssh-keygen -t rsa 在~/.ssh/中会生成两个文件 id_rsa.pub和 ...

  4. 多台linux主机间免密码登录

    即在一台主机上登录另一台主机. 有2台linux主机A.B.A输入命令ssh B的ip地址以连接B,发现需要输入B的登录密码,怎样不需要输入密码呢? 步骤1: 在主机A中,输入ssh-keygen - ...

  5. SSH2免密码登录OpenSSH

    OpenSSH免密码登录SSH2http://blog.csdn.net/aquester/article/details/23836245 两个SSH2间免密码登录http://blog.csdn. ...

  6. OpenSSH免密码登录SSH2

    SSH2免密码登录OpenSSHhttp://blog.csdn.net/aquester/article/details/23836299 两个SSH2间免密码登录http://blog.csdn. ...

  7. Hadoop集群搭建过程中ssh免密码登录(二)

    一.为什么设置ssh免密码登录 在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SSH,但是,SSH远程登陆的时候,需 ...

  8. Hadoop分布式模式下SSH免密码登录

    1.Hadoop中为什么要配置免密码登录 最近在学习Hadoop,在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SS ...

  9. Linux多台服务器间SSH免密码登录配置

    SSH实现各个服务器间的文件相互备份,如运行scp命令,可以实现免密码登录,从而可以使用SHELL脚本实现一些自动化的处理. 假如A机要免密码登录B机,具体方法如下: 1.在A机运行:"ss ...

随机推荐

  1. [LeetCode系列] 跳跃问题II

    给定一系列非负整数, 每个值代表从此下标可以向前跳跃的最远距离, 试求出跳跃到数组尾端需要的最少步骤. 如给定 [2,3,1,1,4], 返回2. (从下标0跳到1, 从1跳到下标4). 算法描述: ...

  2. windows上如何安装Sqlite

    一.安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Windows下的包下载下来sqlite-dll-win ...

  3. 简单遗传算法-python实现

    ObjFunction.py import math def GrieFunc(vardim, x, bound): """ Griewangk function &qu ...

  4. WebKit的已实施srcset图像响应属性

    WebKit已经发布了一些官方新闻,终于落实srcset的属性.作为W3C的响应图像社区组的主席,我一直希望这一刻到来有一段时间了.所以,对所有参与方是个好消息,用户浏览网页时的体验是最重要的. 所有 ...

  5. VS2017开发Linux平台上的程序

    重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux.发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了L ...

  6. app测试笔记记录

    1. 個性簽名保存成功,toast提示“儲存成功” 解释:  Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过 ...

  7. javascript如何判断是手机还是电脑访问本网页

    var system ={}; var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac ...

  8. android.support.v7.internal.widget.ActionBarOverlayLayout Couldn't Be Initialized

    问题症状: Android Studio 1.2 (Build 141.1890965) 新建工程,自动build完成后,Layout Editor无法预览Layout文件,报错内容: Renderi ...

  9. httpclient pool帮助类

    摘自爬虫类  用于频繁请求减少网络消耗 import java.io.IOException; import java.io.InterruptedIOException; import java.i ...

  10. Nginx 是前端工程师的好帮手

    Nginx [engine x] 是俄罗斯的 Igor Sysoev 编写的一个 强大的 HTTP 和反向代理服务器,而且也推出了 Windows 版本.Windows 版本使用 select 模型, ...