linux(十)配置ssh免密登录实现
知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识。
备注:ssh是用于远端登入。执行ssh指令开启终端机阶段作业,并登入远端主机。
一、ssh远程登录
今天要和大家说的是,当我们一台客户机要远程登录到服务器的时候,输入密码才能登录成功。
过程流程图:

所以我们在想能不能我们不需要输入密码,直接使用ssh 用户名@服务器ip就可以登录呢?
二、ssh免密登录原理

看到这个图可能大家有一点蒙逼。我给大家解释一下。
我们在主机A和主机B中分别使用ssh-lkeygen命令,生成用来加密的公钥和私钥。然后我们把主机A的公钥放到主机B下面的.ssh/authorized_keys文件当中。
当我们下次使用ssh 用户名@服务器ip登录的时候,主机B呢就使用:主机A的公钥+主机B 的密码发送给主机A,然后主机A使用自己的私钥解密,得到主机B的密码,
这样就实现了ssh免密登录的功能。
三、和ssh相关的远程拷贝命令scp
3.1、命令说明
进行远程拷贝
3.2、命令语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
简易写法:scp [option(s)] source destination
3.3、参数说明
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file:从指定文件读取传输时使用的密钥文件,此参数传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program:指定加密传输时所使用的程序。此程序必须能够理解ssh的选项。
3.4、测试
服务端

如果远程拷贝的是目录的话,要加-r
四、免密登录的实现
4.1、环境
本人是使用的ubuntu17.04的版本的桌面版作为客户端,使用ubuntu的server版作为服务器端。
4.2、实现过程
注意:进行SSH免密登录的是两台机器的用户名相同例如有A、B两台机器,这两台机器上都有一个用户名同为zyh的用户。现在的需求是在A机器上通过免密(不输入密码,即免密)方式登录B机器。。我们可以直接使用:ssh 服务器端的ip登录。
当用户名不相同的时候,就要使用:ssh 服务器端的用户名@服务器端的ip进行登录。在这里我本人的是两台机器用户名是相同的
客户端:
服务器端:
第一步:分别在A和B机器上使用命令“ssh-keygen”生成公钥和私钥。
执行该命令之后会在zyh用户的家目录下生成“.ssh/”目录和在该“.ssh/”目录下生成公钥“id_rsa.pub”文件和私钥“id_rsa”文件。

注意:公钥是用来加密的,私钥是用来解密的。
第二步:将A机器上的zyh用户家目录下的.ssh/目录下的id_rsa.pub拷贝到B机器的zyh用户的家目录下(注意是家目录,不是.ssh目录)。
命令:scp /home/zyh/.ssh/id_rsa.pub zyh@1.0.0.3:~
命令说明:将上述命令中的“B”更换为具体的主机名或者是IP。注意是拷贝到B机器上的briup用户的家目录,不是“.ssh”目录。

这里是因为主机A和主机B使用的是同一个用户,所以没有使用zyh@1.0.0.3:~
查看服务器端

第三步:在B机器上,将刚刚从A机器上拷贝过来的“id_rsa.pub”(即B机器zyh用户家目录下的“id_rsa.pub”)的内容复制到B机器上的zyh家目录下的“.ssh”目录下的“authorized_keys”文件(注意:第一次使用的话,是没有这个文件的)中。
命令:cat /home/zyh/id_rsa.pub >> /home/zyh/.ssh/authorized_keys
命令说明:上述命令是在B机器上执行

第四步:更改第三步执行命令所生成的“authorized_keys”文件的操作权限为600。(这是ssh协议所要求的)
命令:chmod 600 /home/zyh/.ssh/authorized_keys
命令说明:上述命令在B机器上执行

第五步:在A机器上通过无密码登录B机器。
命令:ssh B
命令说明:上述命令在B机器上执行,将“B”更换为具体的主机名或IP地址。(这是在主机A和主机B用户名相同的情况)
成功测试
补充:在使用SSH工具进行远程登录的时候,如果登录的两个机器的用户名相同,可以直接使用命令“ssh 主机名/IP”来远程登录,而不需要输入用户名,即不需要以“ssh zyh@主机名/IP”这样的方式登录。
(
linux(十)配置ssh免密登录实现的更多相关文章
- 【Linux】配置SSH免密登录
环境说明 假设我们有三台机器分别为bigdata111,bigdata112,bigdata113,三台机器均为centos 7系统. 配置SSH免密登录 (1)利用Xshell的发送键输入到所有会话 ...
- Linux系列——配置SSH免密登录
在进行配置之前需要先关闭防火墙.配置hosts映射. 具体参见:Linux系列--常规基础操作 下面重点说明如何配置SSH: 1.编辑sshd服务配置文件,开启免密验证, vi /etc/ssh/ ...
- Linux虚拟机配置SSH免密登录
本环境为CentOS 7(点击镜像下载iso文件),无图界面. 启动SSH服务 在/usr/sbin/有一个文件为sshd,然后输入绝对路径/usr/sbin/sshd即可开启ssh服务. 然后输入命 ...
- Ubuntu16.04下配置ssh免密登录
Ubuntu16.04下配置ssh免密登录 环境准备:新建两台虚拟机,而且两台虚拟机上都装有Ubuntu16.04的系统,使两台虚拟机之间保持互通状态.分别为两台虚拟机命名为A,B.假设我们要使A虚拟 ...
- 记一次Xshell配置ssh免密登录时的问题
问题: 今天在配置SSH免密登录连接自己的阿里云服务器,在将RSA加密生成的公钥放到服务器后,用Xshell连接服务,出现所选的用户密钥未在远程主机上注册这样的提示,一时懵逼,不知所措,后面终于找到了 ...
- 配置ssh免密登录遇到的问题——使用VMware多虚拟机搭建Hadoop集群
搭建环境: 虚拟机 VMware12Pro 操作系统 centos6.8 hadoop 1.2.1 1.导入镜像文件,添加java环境 1.查看当前系统中安装的java,ls ...
- 【图文详解】linux下配置远程免密登录
linux下各种集群搭建往往需要配置远程免密登录,本文主要描述了CentOs6.3系统下配置免密登录的详细过程. ssh远程登录,两种身份验证: 用户名+密码 密钥验证 机器1生成密钥对并将公钥发给机 ...
- Ubuntu如何配置SSH免密登录
前言 在搭建hadoop集群时,需要主机和副机之间实现SSH免密登录 一.环境准备 1.ubuntu两台 二.安装SSH 1.首先检测一下本机有没有安装SSH服务,如果没有任何打印说明未安装 sudo ...
- 配置ssh免密登录后,仍需要密码才能登陆其中某台机器
提示:如果是三台机器A.B.C配置了ssh免密登录,从A和B上登录C需要密码,则需要修改C的配置 修改配置文件如下: sudo vi /etc/ssh/sshd_config #禁用root账户登录, ...
随机推荐
- PL/SQL学习笔记_01_基础
PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command 窗口中运行 在SQL窗口中运行步骤同 SQL语句 在command 窗口中运行的步骤如下: 1)File—new com ...
- 关于PHP魔术方法__call的一点小发现
好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ...
- JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别
Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致. 例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.c ...
- 第一个asp.net实例——生日邀请以及回函
22回校后,看了论文游了西湖,今天开始接触asp.net,从图书馆选了两本书:<精通ASP.NET 4.5 (第五版)>,<ASP.NET全能速查手册>.一本练手细看,一本翻查 ...
- HDOJ2003-求绝对值
Problem Description 求实数的绝对值. Input 输入数据有多组,每组占一行,每行包含一个实数. Output 对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果 ...
- 【B2B】2015 年B2B的春天
摘要 看看关于B2B的现状,以及行业发展近况. 现状 http://www.cyzone.cn/a/20160115/288471.html 行业发展 蓬勃发展的行业: 方兴未艾的行业: 未来的行业:
- 【TOP】top命令的load average的意义
一. 怎么查看机器负载 uptime 命令: $uptime 14:32:32 up 108 days, 23:04, 17 users, load average: 0.06, 0.08, 0.0 ...
- 微信小程序实现“鲜肉APP”首页效果
项目地址http://git.oschina.net/djcx/WeiXinXiaoChengXu/tree/master 如果您觉得不错,记得给一个star 由于微信小程序目前是当下趋势,正好昨天弄 ...
- 超超超简单的bfs——POJ-1915
Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26102 Accepted: 12305 De ...
- Java Web开发 - 持久型/存储型XSS漏洞
Java Web开发 - 持久型/存储型XSS漏洞 1.什么是XSS漏洞攻击? XSS是跨站脚本攻击(Cross Site Scripting)的简称,之所以叫XSS而不是CSS相比大家都能明白了吧, ...