Linux主机SSH免密设置解析

为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录。但是很多时候为了操作方便,我们都通过设置SSH免密码登录。那么该如何设置?是不是免密码登录就不安全了呢?

一、被访问主机的秘钥存储机制

在被SSH登录的主机中,其实都有一个存储来登录的主机的秘钥的文件,它的名字叫做authorized_keys,它的位置就在root/下面的隐藏目录.ssh中(注:如果这台主机没有被设置任何免秘钥登录,这个文件缺省是不存在的)

在authorized_keys文件中,存储着能够登录本地主机的各个主机的身份证信息,他们的存储格式都是以ssh-rsa开头的一组字符串。在这里,我们不用理解他的意义,但是要记住两点:

1.     每个ssh-rsa及其之后字符串组成了一个唯一代表一个主机的秘钥;

2.     这个秘钥是无法被仿照的;

二、SSH免密登录设置

(1)从Linux系统下发起免密登录

目标机器: HostA

本地机器: HostB

a.     在本地机器用ssh-keygen 生成一个公私钥对

[[email protected] ~] ssh-keygen

此时,在/root/下会生成一个.ssh目录,在这个目录下会生成两个文件

id_rsa是私钥,一定要保存好。不能丢失,也绝对不能分发给其他的用户。如果私钥丢失,身份就可能会被别人冒充。

id_rsa.pub是公钥,用来对外做分发用的。其他的主机拿到公钥之后,就能够判断私钥是否准确。

b.     把本地生成的公钥拷贝到需要登录的目标主机上

[[email protected]  ~]scp .ssh/id_rsa.pub [email protected]:/home/

c.      在远程主机上,将公钥添加到authorized_keys文件之后

[[email protected]  ~]cat id_rsa.pub >> .ssh/authorized_keys

[[email protected]  ~]chmod 700 .ssh

[[email protected]  ~]chmod 600 .ssh/authorized_keys

这里要注意两点:

1) 这里是目标主机HostA,而不是发起主机HostB

2) 这里需要用cat命令将公钥中的内容用重定向命令>>添加到authorized_keys文件之后,而不能简单的用cp命令。原因是因为authorized_keys里面以前可能添加过秘钥,如果用cp命令,可能将以前的秘钥都冲掉。

d.     上述步骤都完成后,免密登录都已经设置完成,可以回到本地主机上进行SSH登录了

摘自:http://blog.csdn.net/royalfizz/article/details/53356584

时间: 2024-08-10 02:51:47

Linux主机SSH免密设置解析的相关文章

linux上ssh免密登录原理及实现

因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp(secure copy)是linux系统下基于ssh登录进行安全的远程文件拷贝的命令. # 传递文件到远程 scp local_file remote_username@remote_ip:remote_file # 传递文件夹到远程 scp -r local_folder remote_usern

【Linux】ssh免密登录

一.ssh免密配置 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(192.168.1.155),B(192.168.1.181).现想A通过ssh免密码登录到B. 1.在A机下生成公钥/私钥对. [[email protected] ~]$ ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/home/chenlb

宿主机ssh免密登录docker容器

一.检查系统内核 二.安装docker 1.yum install docker  -y 2.docker version                    #查看docker版本 3.systemctl restart docker     #启动docker服务 4.groupadd docker & useradd -g docker docker 三.安装镜像 docker pull [选项] :标签 docker pull centos:7 docker images       

配置Linux系统ssh免密登录

因为要配置Hadoop集群服务,折腾了好久的ssh免密登录,简直要把人整疯了,在网上看了好多分享,都没搞定,最后看到一篇类似的,加上自己瞎蒙,终于成了,而且是超级简单,现在吐血总结一下. 我的是CentOS8虚拟机,干货来了. 第一步:vim /etc/ssh/sshd_config,将PubkeyAuthentication yes的注释去掉 第二步:systemctl status sshd.service,重启ssh服务 第三步:systemctl enable sshd.service,

Linux的SSH免密登录认证过程研究

一.先看下SSH免密登录使用到的工具和生成的文件 工具:ssh-keygen用于生成秘钥文件,其中秘钥分为公钥和私钥.ssh-copy-id用于复制公钥文件到被控制机. 文件:ssh-keygen生成的秘钥文件有两个,放在~/.ssh/,id_rsa为私钥.id_rsa.pub为公钥 被控制机文件:通过ssh-copy-id复制的公钥在被控制机这个文件里,~/.ssh/authorized_keys id_rsa.pub公钥如下示例: ssh-rsa AAAAB3NzaC1yc2EAAAABIw

Linux机器间ssh免密登录

前言 一台Linux机器通过ssh的方式连接别的机器或通过scp的方式传输文件,都需要输入密码. 为了解决每次输入密码的困扰,可采用添加密钥的方式实现. 实现过程 源服务器A,目标服务器B. 1.在源服务器A上执行以下命令,生成配对的密钥: ssh-keygen -t rsa 2.生成的密钥存放于~/.ssh/id_rsa.pub: 3.在目标服务器的~/.ssh目录下新建文件authorized_keys(若有则不需): touch authorized_keys 4.将源服务器的id_rsa

Linux之ssh免密登录

具体步骤 1. A.B两主机各生成公钥和私钥对: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 2. 把A主机生成的公钥拷贝到B主机,B主机生成的公钥拷贝到A主机 ###A主机的公钥拷到B主机 scp ~/.ssh/id_dsa.pub [email protected]主机IP:/home ###B主机的公钥拷到A主机 scp ~/.ssh/id_dsa.pub [email protected]主机IP:/home 3. 在A和B主机上分别把对方的id

linux下ssh免密登陆

假设 有A.B两台主机: 要实现的效果: A主机ssh登录B主机无需输入密码: 加密方式选 rsa|dsa均可以,默认rsa 做法: 1.登录A主机 2.ssh-keygen -t [rsa|dsa],将会生成私钥文件和公钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub 3.将 .pub 文件复制到B主机的 .ssh 目录, 并 cat id_rsa.pub >> ~/.ssh/authorized_keys 4.测试:从A主机登录B主机的目标账户,不再需要密码了

Linux配置ssh免密登录

假定有3台机,用户名和IP分别是:C1  192.168.1.101C2  192.168.1.102C3  192.168.1.103 # 登入root用户su # 安装vimapt-get install vim # 安装sshapt-get install openssh-server # 查看机器名字(可跳过此步)vim /etc/hostname #如需修改可直接编辑后重启即可 # 打开hosts文件(3台机都要执行此步)vim /etc/hosts # 在hosts文件中加入以下几行