Ubuntu系统SSH免密登录,以及SSH免密登录原理
我用的是Ubuntu 16.04系统,在搭建集群的时候开启集群每次都要输入好多的密码,太过于麻烦,用SSH免密登陆可以不用输入密码
SSH的基本介绍
简单说,SSH是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。
安装SSH
如果你的系统安装过SSH这一个步骤就可以省略了,查看是否安装SSH。
ps -e | grep ssh 或者 ps -ef | grep ssh
出现如图这样的说明已经安装了SSH服务,如果没有安装请执行下面命令安装SSH服务
//先更新一下Ubuntu中的软件信息
sudo apt-get update
//在安装SSH服务
sudo apt-get install openssh-server
在安装的过程中会询问是否安装敲 y 在回车就好了。
只要不报错就安装好了。
要使用远程连接两台机器上都要安装SSH服务,免密登录的所以操作只要在本机上操作就可以了,但是远程主机要开启。
第一步在本机生成公钥和私钥
ssh-keygen -t rsa -P ""
rsa和dsa是生成密钥常用的两种加密算法,其他可选算法还有ecdsa、rsa1等。命令执行过程需要用户输入的地方连续回车即可(enter passphrase的别输入,否则登录的时候还得输入密钥密码)。
把本机生成的私钥发送给远程主机
方式一:ssh-copy-id 远程主机名@远程主机ip
方式二:ssh 远程主机名@远程主机ip 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
中途会要求你输入一次远程主机的密码,我这里远程主机ip写了“node1”是因为我配置了主机名和ip地址的映射。免密登录到这里就完了你可以测试一下远程登录看看是否还需要密码。ssh -l 远程主机名 远程主机ip
免密登录的原理
图解:server A免登录到server B:
- 在A上生成公钥私钥。
- 将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)
- Server A向Server B发送一个连接请求。
- Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密。
- Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密。
- Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。
- Server B接收Server A发送来的解密后的字符串和Server B第4部生成字符串进行对比,如果一致,则允许免登录。
总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。
本篇博客到这里也就结束了希望可以帮到你,如果有哪里写的不对还望各位大佬指出!!!谢谢大家了。
Ubuntu系统SSH免密登录,以及SSH免密登录原理相关推荐
- 使用nat123远程ssh连接WSL Ubuntu系统
使用nat123远程ssh连接WSL Ubuntu系统 更新 Multivation 给WSL开启ssh服务 编辑WSL的ssh_config Windows防火墙设置: 测试一下SSH能不能连接 外 ...
- ssh登录、配置免密登录
Ubuntu安装ssh.配置自启动脚本 文章目录 1.登录远程服务器: 2.给服务器设置别名 3.设置免密登录 4.执行命令 5.其它 1.登录远程服务器: ssh user@hostname- us ...
- ubuntu系统无法ssh登录--安装openssh
与红帽子系列的Linux发行版不同,Ubuntu系统安装后并不能直接进行ssh登录.需要手动安装openssh才行. Ubuntu安装openssh命令如下: sudo apt-get install ...
- linux免密登录_Linux SSH免密钥登录总结
Linux下生成密钥 通过命令"ssh-keygen -t rsa" 生成之后会在用户的根目录生成一个 ".ssh"的文件夹 进入".ssh" ...
- 远程连接服务器(免密登录,ssh协议22号端口),web服务器:URL格式,http协议,http请求常用的方法(get和post)
1.实现免密登录 两台Linux之间的免密登录 第一步:在客户端产生秘钥(一对公钥和私钥对) 第二部:将客户端的公钥copy到服务端 [root@server ~]# ssh-keygen -t r ...
- 虚拟机免密登录 (SSH 无密登录配置)
无密钥配置 (1)免密登陆原理 (2)生成公钥和私钥: [root@hadoop101 .ssh]$ ssh-keygen -t rsa 然后敲(三个回车),就会生成两个文件id_rsa(私钥).id ...
- Windows登录虚拟机Ubuntu系统登录不成功解决办法(ssh: connect to host 192.168.220.128 port 22: Connection refused)
我在windows端第一次连接自己电脑虚拟机建立的Ubuntu系统时出现如下问题 ssh: connect to host 192.168.220.128 port 22: Connection re ...
- ubuntu系统开启ssh用户名密码登录
文章目录 一.修改配置文件 1.打开配置文件 2.修改配置文件 3.保存退出 4.重启ssh服务 二.修改ecs-user密码 1.修改密码 总结 阿里云ubuntu系统默认默认禁止了ssh用户名密码 ...
- linux6.5配置ssh,CentOS 6.5 配置 SSH 免密登录
1. 生成公钥:ssh-keygen -t rsa 然后一直回车即可 _>: ssh-keygen -t rsa Generating public/private rsa key pair. ...
最新文章
- oracle 11g duplicate active database 建立物理DG
- 算法 求一个数组的最长递减子序列 C
- 基于沙盒环境,安装python3.6
- cout的输出格式初探2
- 怎样搭建Android开发平台(转)
- 合并k个有序链表 python_leetcode第23题-合并K个有序链表
- mybatis简单案例源码详细【注释全面】——Dao层映射文件(UserMapper.xml)【重要】
- LeetCode 第 17 场双周赛(469/897,前52.3%)
- 使用NGINX作为HTTPS正向代理服务器
- 信息学奥赛一本通(1209:分数求和)
- 人口增长(信息学奥赛一本通-T1070)
- 在sqlexpress中添加DB和在sql analyzer中操作DB.
- Halcon基础操作
- 音频帧率计算方法(只需要知道 采样率 和 一帧采样数 )
- Maven项目集成cxf框架发布WebService
- 牛电科技电动车 出行的最佳选择
- linux 不识别 svg,manjaro/archlinux用yaourt -Syu滚动升级后大量图标主题不能用svg图标不能识别...
- 微信公众号已认证如何修改名字?
- Jetson TX2重要技巧
- 一、微服务基本介绍-背景(基于电商项目)