http://inuyasha1027.blog.51cto.com/4003695/1132896/

主机ip:192.168.163.100(hostname: node0)

ssh无密码登陆的远程机ip:192.168.163.101(hostname: node1)

首先要修改主机 和ssh连接到的远程机 的配置文件:

vi  /etc/ssh/sshd_config

(要确保这些字符前无注释符号“#”)

RSAAuthentication  yes

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication yes

PeimitEmptyPasswords yes

1.在本地机上输入命令: ssh-keygen -t rsa

2.接着一路按回车,默认情况下ssh生成的公密钥会被存储到

/root/.ssh

这个文件夹下,分别为id_rsa 和id_rsa.pub

ps:如果hadoop用户登录,因为hadoop用户初始登录进去的目录就是hadoop用户的根目录,那就在home/hadoop下面做这件事,这就是网上有的说在root/.ssh和home/hadoop/.ssh的区别

3.在本地机上创建文件 authorized_keys

touch /root/.ssh/authorized_keys

并将公钥追加到authorized_keys文件中:

cat id_rsa.pub >> authorized_keys

4.在远程主机上创建了文件夹及文件如下:

/root/.ssh/authorized_keys

5.修改文件夹/root/.ssh的权限:

(本地机和远程机都要修改)

chmod 700 /root/.ssh

6.修改文件的属性:

chmod 600 /root/.ssh/authorized_keys

7.将公钥复制到ip地址为192.168.163.101的远程机上:

ssh-copy-id  -i  /root/.ssh/id_rsa.pub  root@192.168.163.101

笔者在输入命令时已经在远程主机上创建了文件夹及文件如下:

/root/.ssh/authorized_keys

并且,已经按上文修改了权限/.ssh (700)  /.ssh/authorized(600)

(实践证明在传送公钥时,这个命令好于scp命令 )

8.在本地机上执行命令:

ssh-add  /root/.ssh/id_rsa

这个是为了将公钥添加进来。

9.重新启动ssh服务:

service sshd restart

10. 在本地主机上输入:

ssh node1(回车)

即可登录到远程主机上了。

ps:文件夹路径或是文件名根据个人的配置而有所不同,

需要根据具体情况进行更改。

不对文件夹及文件修改权限和没有执行ssh-add命令

都会引起设置之后远程登陆仍需要输入密码的情况。

当然,也要注意对配置文件进行设置及修改。

good luck ~

================================================================

将公钥拷贝到服务器的~/.ssh/authorized_keys文件中方法有如下几种:
1、将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。
2、通过ssh-copyid程序,就是我演示的方法,ssh-copyid user@host即可,但是这种方式不支持更改端口号(我没找到)。该程序常见发行版linux自带无需安装,其实该程序为一个脚本。
3、可以通过cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,这个也是比较常用的方法,因为可以更改端口号。

解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop的更多相关文章

  1. Ubuntu 18.04 root 使用ssh密钥远程登陆

    前言: Ubuntu默认是禁止root用户远程登陆 本教程解决Ubuntu 18.04版本 root用户 使用ssh密钥无法远程登陆的问题 问题发生的环境: 腾讯云,重装Ubuntu服务器时选择使用s ...

  2. ssh 配置无密码登录

    下框中在管理机上运行: [root@master ~]# ssh-keygen -t rsa #它在/root/.ssh下生成id_rsa和id_rsa.pub两个文件 [root@master ~] ...

  3. ssh配置无密码登录

    1.在master机器上生成公钥: [root@master ~]# ssh-keygen -t rsa    注:一直按enter键就可以生成了 Generating public/private ...

  4. 批量SSH key-gen无密码登陆认证脚本

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

  5. 批量SSH key-gen无密码登陆认证脚本 附件脚本

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

  6. ssh实现无密码登陆

    参考教程:https://linux.cn/article-5444-1.html 1.假设你有一台主机A(ip:111.111.111.111),用户名为server123,想无密码登陆到主机B(1 ...

  7. centos下的hadoop集群实现ssh的无密码登陆

    CentOS 下SSH无密码登录的配置 最近学习Hadoop.它要求各节点之间通过SSH无密码登录,配置SSH的时候费了一番功夫,记录下来,以备忘. 配置SSH无密码登录需要3步: 1.生成公钥和私钥 ...

  8. SSH配置私钥登陆服务器

    前言 本文基于实际Linux管理工作,实例讲解工作中使用ssh证书登录的实际流程,讲解ssh证书登录的配置原理,基于配置原理,解决实际工作中,windows下使用SecureCRT证书登录的各种问题, ...

  9. [SSH服务]——一个SSH无密码登陆实验

    实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户us ...

随机推荐

  1. QNDataSet打印预览自动关闭问题

    问题:打印预览后,数据集自动关闭 解决: TQNDataSet = class(TFDMemTable) private protected procedure PSReset; override; ...

  2. php 判断文件/目录是否存的方法

    涉及函数 is_file(), is_dir() , file_exists() is_file() 判断文件是否存在 is_dir() 判断目录是否存在 file_exists() 既可用于判断文件 ...

  3. ZXingObjC 64位 集成到自己的项目中(xcode 6.4)

    参考  http://www.cocoachina.com/bbs/read.php?tid-280058-page-1.html 楼主发的DEMO中 ZXingObjC 支持64位  但是是以项目形 ...

  4. oracle 触发器学习

    触发器使用教程和命名规范 目  录触发器使用教程和命名规范 11,触发器简介 12,触发器示例 23,触发器语法和功能 34,例一:行级触发器之一 45,例二:行级触发器之二 46,例三:INSTEA ...

  5. 解决错误 Cannot await in the body of a catch clause

      解决错误 Cannot await in the body of a catch clause   static async Task f() { ExceptionDispatchInfo ca ...

  6. c#利用反射获取对象属性值

    public static string GetObjectPropertyValue<T>(T t, string propertyname){     Type type = type ...

  7. windbg学习----.process

    .process 命令指定要用作进程上下文的进程(Set Process Context) .process显示当前进程的EPROCESS,这里显示当前进程为test.exe kd> .proc ...

  8. 只有一个radio的单选框如何在选中后取消选中

    <input type="radio" id="all" value="1" name="executeRadio" ...

  9. 信鸽推送(XGPush)

    先放入两个链接: iOS信鸽接入官方文档:http://developer.qq.com/wiki/xg/iOS接入/iOS%20SDK完整接入/iOS%20SDK完整接入.html 信鸽开放平台:h ...

  10. 集合的概念 Stack和Queue Dictionary ArrayList和List<T>方法及用法

    Stack和stack<T>方法一样// 管理方式: 后进先出 LIFO 栈// Stack<string> s=new Stack<string>();//(放一 ...