两个openssh间免密码登录

以下针对的是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 2”表示为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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

解决 Maven工程运行报错Failed to clean project: Failed to delete

  在运行maven工程总是报“Failed to clean project: Failed to delete”错误,原因是因为之前编译的工程还在运行,无法...

1233
来自专栏xingoo, 一个梦想做发明家的程序员

linux虚拟机与winodows共享文件夹----linux安装VMware tools

虚拟机里面想要获取原来本机 系统的文件,十分麻烦。为了实现原系统与虚拟机的共享文件夹,可以通过安装vmware tools达到共享目的。 1 安装vmware ...

2419
来自专栏cs

网络测试与分析工具简介

<h2>主要是几个dos命令,直接上图和网上已有的知识</h2> <ol> <li>ipconfig<b>----查看和设置网络配置</b></li> <...

3124
来自专栏小樱的经验随笔

kali 2018.1安装教程

00x01 摘要 Kali-linux系统,渗透测试人员的利器,其官网自称 OurMost Advanced Penetration Testing Distr...

4026
来自专栏黑泽君的专栏

day47_Maven学习笔记

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven是一个跨平台的项目管理工具,它是使用j...

1301
来自专栏Brian

Install Django Nginx uWSGI

概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

3909
来自专栏北京马哥教育

超全的 Linux 机器的渗透测试命令备忘表,共16表128条命令

如下是一份 Linux 机器的渗透测试备忘录,是在后期开发期间或者执行命令注入等操作时的一些典型命令,设计为测试人员进行本地枚举检查之用。 系统信息命令 对于...

2949
来自专栏繁花云

Tiny210开发板网络挂载实现

forlinx 表示将要共享的的目录(在这里我们设置的名字是6410),它可以作为网关的

740
来自专栏轻扬小栈

改Hosts文件上google

2953
来自专栏CaiRui

memcached服务

介绍 它是一套数据缓存系统或软件 用于动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升性能的效果,实际应用环境中多用于数据库的cache的应用。它...

3768

扫码关注云+社区

领取腾讯云代金券