#ssh远程双向无密码登陆
需求:在192.168.10.100执行ssh 192.168.20.205不需要输入密码直接跳转到205机器
#在192.168.10.100执行命令,我这里使用root用户

> ssh-keygen -t rsa -P ''       #直接回车回车,不输入任何内容(在192.168.10.100生成公钥和私钥放在/root/.ssh  目录下)
> ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.205    #把192.168.10.100的公钥复制到192.168.20.205,并追加到192.168.20.205服务器密钥信任列表(需要输入对应用户密码)

> ssh 192.168.20.205   #测试是不是可以不输入密码调到192.168.20.205服务器

#想在192.168.20.205免密码登陆192.168.10.100只需要把上述三个命令在192.168.20.205执行一次即可.

详细原理如下: 
#配置10.100
1.在客户端生成公钥和私钥
ssh-keygen -t rsa -P ''#直接回车,不输入任何内容
cd /root/.ssh#生成的公钥和私钥位置
2.把生成的公钥追加到自己的信任列表,自己可以ssh localhost不需要输入密码
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.修改ssh配置文件让其支持远程rsa验证登陆
vim /etc/ssh/sshd_config
放开注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
4.重启sshd服务
service sshd restart
5.本机测试是否支持无密码连接
ssh localhost#第一次输入yes
ssh localhost#第二次直接登陆
6.把自己的公钥给服务器
scp ~/.ssh/id_rsa.pub root@192.168.20.205:~/
 
7.登陆服务器192.168.20.205,把公钥追加到自己信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
8.服务器端重启sshd
service sshd restart
9.这时10.100(提供公钥方)可以无密码登陆20.205(信任列表有10.100公钥).
###单向无密码认证完成###
 
#在205服务器按照上述步骤做一次即可.
0.一样的步骤
生成公钥私钥--->公钥追加到自己的信任列表--->修改配置文件(放开注释)--->重启sshd--->本机测试
1.复制服务端公钥
scp ~/.ssh/id_rsa.pub root@192.168.10.100:~/ 
2.进入客户端,把服务器公钥追加到客户端信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
3.服务端直接登陆客户端
ssh 192.168.10.100
 
###修改ssh端口###
vim /etc/ssh/sshd_config
查找port,放开注释,可以添加一行(支持多端口),也可以直接改掉22端口.
 
 
如果遇到此问题:
 
cd /root/.ssh/
vim known_hosts     #删掉该主机对应的信任信息,因为之前配置过一次,但这一次重新生成了公私钥,而这边还是旧了,认证不了就报错.
 

18.ssh远程双向无密码登陆的更多相关文章

  1. ssh 信任关系无密码登陆,清除公钥,批量脚本

    实验机器: 主机a:192.168.2.128 主机b:192.168.2.130 实验目标: 手动建立a到b的信任关系,实现在主机a通过 ssh 192.168.2.130不用输入密码远程登陆b主机 ...

  2. Linux设置ssh无密码登陆

    最近在折腾Hadoop,要用到主机间无密码登陆,设置的时候遇到了一些问题,这里记录一下. 假设A需要无密码登陆B. 那么首先需要在A上使用ssh-keygen生成id_rsa.pub的公钥,生成时,一 ...

  3. ssh无密码登陆远程机,pssh轻批量工具

    #B(client)--------A(g_server)#A:   ssh-keygen -t rsa (g_server)#B:    scp -P 58422 root@g_server_ip: ...

  4. ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机

    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机 使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linu ...

  5. ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机【OK】

    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机[OK]     使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能 ...

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

    http://inuyasha1027.blog.51cto.com/4003695/1132896/ 主机ip:192.168.163.100(hostname: node0) ssh无密码登陆的远 ...

  7. 烂泥:学习ssh之ssh无密码登陆

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 最近一个月没有写过文章,主要是刚刚换的新工作.新公司服务器OS使用的是ubuntu server版,和以前熟悉的centos还是有很多不同的. 刚好这几天 ...

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

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

  9. SSH 远程登陆

    2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...

随机推荐

  1. Windows内核 WDM驱动程序的基本结构和实例

    WDM驱动的基本结构: WDM驱动模型是建立在NT式驱动程序模型基础之上的.对于WDM驱动程序来说,一般都是基于分层的,即完成一个设备的操作,至少要由两个驱动设备共同完成. 1)物理设备对象和功能设备 ...

  2. Java程序设计 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  3. 安卓仿微信Tab页用Fragment实现

    最终效果图如: 实现步骤: 新建项目tabdemo,我选的是4.0.3版本,然后依次新建三个Fragment,名字分别为:ChatFragment.FriendFragment.FindFragmen ...

  4. 白话学习MVC(六)模型绑定

    一.什么是模型绑定? 模型绑定存在的意义就是为Action的参数提供值,例如:如下表单中提交了数据,那么Action(即:Index)的参数Id,Name的值就是表单中对应的name属性相同的值,而表 ...

  5. ionic获取焦点

    功能需求:点击按钮后获取input输入框的焦点 获取焦点用jq focus()不成功,因为angular也不推荐,所以网上找了一个在focus封装成指令的方法 指令写法: .directive('my ...

  6. 深入浅出Docker(一):Docker核心技术预览

    Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可 ...

  7. spark的安装

    官方安装地址:http://spark.apache.org/docs/latest/spark-standalone.html 准备 1.三台机器(m2.m3.m4) 2.m2位master, m3 ...

  8. php截取字符串

    1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串 <?php $str ="phpddt.com"; echo substr($str, 2); / ...

  9. HTTPS与强制门户

    强制门户 http://www.whatis.com.cn/word_5182.htm 强制网络门户(captive portal)是一个Web页面,它是使用公共访问网络的用户在被授予访问权限前必须访 ...

  10. PHP5与MySQL数据库操作

    1 建立数据库表:  2 读取数据 2.1 建立01.php 2.2 建立member.php  3 修改数据 3.1 建立level.php(修改数据) 3.2 建立up_level.php  4 ...