【Linux】SSH 使用密码公钥远程登录总结

【Linux】SSH 使用密码公钥远程登录总结,第1张

本文是笔者查阅网上资料做的总结,关于SSH原理,什么是对称加密和非对称加密,本文不过多介绍。这里介绍一下SHH的工作过程、配制方法,可能出现的问题及解决方法。

说明:本文中涉及的例子,SSH客户端为:本地主机A,SSH服务器为:服务器B

SSH协议采用C-S(客户端-服务器端)架构进行双方的身份验证以及数据的加密。

服务器端组件监听指定的端口,负责安全连接的建立、对连接方的身份认证、以及为通过身份认证的用户建立正确的环境。

客户端负责发起最初的TCP握手、安全连接的建立、验证服务器的身份与之前记录中的一致、并将自己的验证信息提供给服务器。

一个SSH会话的建立过程分为两个阶段。第一阶段,双方沟通并同意建立一个加密连接通道以供后续信息传输用。第二阶段,对请求接入的用户进行身份验证以确定服务器端是否要给该用户开放访问权限。

当客户端发起TCP连接时,服务器端返回信息说明自己支持的协议版本,如果客户端上支持的协议与之匹配,则连接继续。服务器会提供自己的公共主机密钥(public host key)以让客户端确认自己访问的是正确的机器。

然后,双方采用一种Diffie-Hellman算法共同为该会话建立密钥。每一方的一部分私有数据,加上来自对方的一部分公共数据,通过这种算法计算,能够得出完全相同的密钥用于本次会话。

整个会话的通讯内容都使用该密钥进行加密。这个阶段使用的公钥/私钥对与用户验证身份用的SSH密钥是完全无关的。

经典Diffie-Hellman算法的计算步骤如下:

这个共享密钥的加密方式被称为二进制数据包协议(binary packet protocol)。该过程能够让双方平等的参与密钥生成的过程,而不是由单方掌握。这种共享密钥生成的过程是安全的,双方没有交换过任何未经加密的信息。

生成的密钥是对称式密钥,一方用于加密信息的密钥等同于另一方用于解密信息的密钥,而任何第三方由于不持有该密钥,是无法解密双方传递的内容的。

会话加密通道建立后,SSH开始进入用户认证阶段。

下一步,服务器验证用户身份以决定是否准许其访问。验证有不同的方式,选择的验证方式取决于服务器的支持。

最简单的验证是密码验证:服务器要求客户端输入密码,客户端输入的密码经过上述的通道加密传输给服务器。

虽然密码是加密过的,然而该方法仍然不被推荐,因为用户经常为了省事而使用过于简单的密码,而这类密码很容易就能够被自动化脚本破解。

最流行的验证方式是SSH密钥对,这也是当前最推荐的方式。SSH密钥对是非对称密钥,私钥和公钥分别用于不同的功能。

公钥用于加密,而私钥用于解密。公钥可以随意上传、共享,因为公钥的流通并不会危及到私钥的保密性。

SSH密钥对的验证过程起始于上一部分加密通道建立之后,其具体执行步骤如下:

简单来说,服务器端用公钥加密信息,客户端用私钥解密信息以证明自己持有私钥。该过程同时使用了对称加密和非对称加密,两种方式各有自己的功用。

命令如下:

用户名:为要登录的服务器B中已存在的用户账户名

IP地址:为服务器B的IP地址

-p 端口号:用来指定端口号,默认为22

第一次登录时,会提示如下提示:

大概意思是说,你正在访问的主机不能验证它的真实性,它的RSA key(当前访问主机的公钥)指纹是怎样的,你确定要继续连接吗?

输入yes继续,会提示,已永久把当前访问主机的RSA key添加到了已知主机文件(用户目录下,ssh 文件夹中的knwon_hosts文件)中。之后再次 SSH 登录就不再有该提示了。

接着,输入登录账户的密码即可。

SSH 密码登录,需要服务器开启密码验证权限,编辑服务器SSH配置命令如下:

在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,将前面的#号去掉,保存退出。

公钥登录,即免密码登录。避免的每次登录都要输入的麻烦,也防止了中间人攻击。是SSH远程登录最常用的登录方式。

提示输入密钥对名称,直接回车,使用默认名称即可;

提示输入密码(使用私钥时,要输入密码),直接回车,不使用密码即可。

首先,登录服务器B,在进行下面的操作。

找到 #PubkeyAuthentication yes,删除 #号,保存退出。

重启 ssh 服务

也可指定验证私钥:

本地主机A,生成密钥对后:

sudo vim /etc/selinux/config

搭建NIS服务器实现用户集中化认证。

NIS服务器概述

NIS网络信息服务,模式是C/S 模式。NIS是集中控制几个系统管理数据库的网络产品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd。管理员只需要简单的使用维护NIS服务器的文件即可。

Linux系统中用户按地域分两类:本地用户,远程用户(NIS,LDAP,AD)

ypbind是定义NIS服务器的客户端进程。一旦确定了服务器位置,客户机绑定到了服务器上,所有客户端的查询都发往NIS服务器。

ypserv是回答客户端查询的服务器进程。

使用的场景:

在一个大型的网域当中,如果有多部 Linux 主机,万一要每部主机都需要设定相同的账号与密码时,如果能够有一部账号主控服务器来管理网域中所有主机的账号, 当其他的主机有用户登入的需求时,才到这部主控服务器上面要求相关的账号、密码等用户信息, 如此一来,如果想要增加、修改、删除用户数据,只要到这部主控服务器上面处理即可, 这样就能够降低重复设定使用者账号的步骤了!

NIS工作流程

NIS服务的应用结构分为NIS服务器和NIS客户机两种角色,NIS服务器集中维护用户的帐号信息(数据库)供NIS客户机进行查询,用户登录任何一台NIS客户机都会从NIS服务器进行登录认证,可实现用户帐号的集中管理。1Nis Master先将帐号密码相关文件制作成数据库文件;2若有帐号密码变动时,需要重新制作数据库文件并重新同步Master/Slave。3NIS client 若有登入需求时,会先查询其本机的 /etc/passwd, /etc/shadow 等档案;4若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS 网域的主机广播查询;5每部 NIS server (不论 master/slave) 都可以响应,基本上是『先响应者优先』

一:实验目标

实战:配置NIS服务器实现集中化认证。

实战:在客户端自动挂载NIS用户家目录

二:实验环境

NIS服务端 :xuegod63 IP:192168163

Web服务端 :xuegod64 IP:192168164

客户端 :xuegod62 IP:192168162

参考: http://www2ctocom/net/201705/638244html

linux忘记密钥?

首先我们登陆linux服务器然后创建公钥文件存放位置并设置权限mkdir/root/sshchmod700/root/sshvi/root/ssh/authorized_keys把公钥里边的内容复制到里边然后保存即出,只有一行的。注意哦。(这也是为什么我当时用puttygen创建公钥之后复制用记事本保存的原因,因为用软件保存的分几行。)然后重启ssh设置putty用密钥登陆最后测试确实是输入用户名之后就免密码登陆了,并显示出公钥的备注信息。

这时我们可以删除密码登陆了,要么就改成特别特别复杂的密码

Linux服务器之间怎么样SSH不需密码?

ssh密钥是什么?

SSH密钥是一种加密的网络传输协议,在电脑与您账号下的代码托管服务之间建立安全连接。在一台电脑上配置了SSH密钥并添加公钥到代码托管服务中后,所有该账号下的代码仓库与该台电脑之间都可以使用该密钥进行连接。不同的用户通常使用不同的电脑,在使用SSH方式连接代码仓库前需要在自己电脑生成自己的SSH密钥,并设置到远程仓库中。

centos7ssh免密码登录,生成的密匙在吗?

centos系统中,ssh生成的密钥信息

一般在当前用户的home目录下的ssh隐藏文件夹下。

密钥管理ft什么意思?

密钥管理ft是一种安全、可靠、简单易用的SSH密钥对托管服务,帮助用户集中管理SSH密钥对,保护SSH密钥对的安全。

SSH密钥对,简称为密钥对,是为用户提供的远程登录Linux云服务器的认证方式,是一种区别于传统的用户名和密码登录的认证方式。

密钥对是通过加密算法生成的一对密钥。

Ubuntu怎样配置免密码?

我们正常使用ssh远程登录服务器进行操作,需要输入用户名、服务器ip以及密码,当我们需要同时管理多个服务器的时候,每次都需要重复输入这些东西会显得特别麻烦和浪费时间,因此我们可以通过配置密钥来实现Ubuntu免密码登录。r实现这一目标五部,分别为:-本地客户端生成密钥对-上传密钥到服务器端-服务器端将密钥添加到authorized_keys-本地客户端配置ssh,添加服务器别名-测试r如果客户端是使用MacOS或者Linux系统,可以直接在终端使用以下操作即可,如果Window系统,建议先安装Git-Bash,Git-bash自带ssh工具,在Git-Bash下,操作也和Linux或者MacOS系统一样。r本地客户端生成密钥对在生成密钥对之前,我们可以先查看一下我们是否已经生成过密钥对,可以通过以下命令:r

如果输出有和,那么就证明之前曾经生成过密钥对,其中是私钥,是公钥,我们可以直接使用。如果没有看到这两个文件,那么请回忆是否自己命名的密钥对,如果没有或者已经忘记是否曾经生成过,那么久可以重新创建一个。方法如下:r执行命令后,会提示密钥存储位置,以及询问是否需要设置密码,一般我们可以一路按确认即可完成密钥生成。r完成后我们再次查看文件夹下是否由我们新创建的密钥即可。r上传密钥的服务器端接下来,我们将我们创建好的公钥上传到服务器上,我们将会使用到命令。r这里需要注意的是,我们需要上传的是公钥,其文件名为,私钥是需要我们保密的,这里不要上传错。r服务器端将密钥添加到authorized_keys接下来,我们需要登录我们的服务器,然后将我们刚上传的公钥添加到authorized_keys中。在添加之前,我们需要先做一下准备,具体如下:-检查是否存在ssh文件-如果不存在需要自行创建如果是刚安装的系统,以我的Ubuntu16044为例,默认的ssh是没有自动创建ssh文件夹的,这需要我们自己创建。不同版本的系统或者以不同途径安装的ssh可能情况会有所不一样,请根据实际情况处理。r以上即完成操作,在Ubuntu16044的系统默认配置中,以上操作完成即可。然而,在一些不同版本的系统中,可能还需要配置以下ssh的配置,具体如下:-备份-编辑,将修改为r本地客户端配置ssh,添加服务器别名完成上面的配置后,我们可以尝试在本地中尝试使用密钥登录看是否成功:r如果配置正确就可以正常免密码登录。r为了解决需要管理多台服务器,不希望记住太多不同的用户名和地址的问题,我们还可以为设置别名登录,具体操作如下:-在本地ssh/文件夹下创建config-向config中添加别名信息r测试完成所有配置后,我们可以测试一下配置是否正确:r如果能正常免密码登录,说明配置成功,我们以后便可以通过这样直接输入服务器别名的方式快速登录服务器了。r

linux系统连接服务器主机密钥验证失败?

客户端设置客户需要生成密钥对(公共和私有)。稍后我们会将公钥上传到SSH服务器。

ssh-keygen生成SSH密钥时,系统将提示您输入密码。我们建议在此步骤中使用新密码。这将避免别人使用你的钥匙。

将公钥上传到服务器现在我们将使用ssh-copy-id命令来上传密钥。

您可以手动将公钥(~/ssh/id_rsapub)附加到服务器上的~/ssh/authorized_keys。

ssh-copy-iduser@hostname更安全的SSH设置此步骤是可选的,但建议禁用密码验证(特别是root用户)打开文件/etc/ssh/sshd_config并将PasswordAuthentication更改为“no”值。

PasswordAuthenticationno确保在重新启动SSH服务器之前测试您的ssh密钥验证!sudoservicesshrestart

linux服务器传文件如何不用输密码?

首先需要在服务器端设置/etc/ssh/sshd_config

#vim/etc/ssh/sshd_config

修改如下两行为yes。其实大多数情况下不用修改,默认就是yes。

RSAAuthenticationyes

PubkeyAuthenticationyes

(1)如果客户机和服务器都是Linux机器,那么我们使用下面的方法:(后面第2节会提到怎么在Windows下使用Putty生成密钥对)

我们需要在客户端生成RSA密钥对。使用ssh-keygen命令:

#ssh-keygen-trsa

参数t的意思是type,后面跟着加密类型,这里我们是rsa。

然后会提示你输入密钥保存完成文件名,这里我们需要使用默认的id_rsa,之后才能正常才能登录。如果你生成的密钥作为其他用处,那么可以命名为其他名称:

Generatingpublic/privatersakeypair

Enterfileinwhichtosavethekey(/home/cake/ssh/id_rsa):

之后会提示你输入一个passphrase,我们这里可以留空,这样我们登录的时候就不许输入密码。

Enterpassphrase(emptyfornopassphrase):

Entersamepassphraseagain:

然后会提示你密钥生成成功。这是你的私钥保存为~/ssh/id_rsa,你的公钥是~/ssh/id_rsapub

我们现在需要做的是,把id_rsapub的内容,添加的服务器端的~/ssh/autherized_keys文件最后。

你可以把这个文件上传到服务器端,然后使用命令:

#catid_rsapub>>~/ssh/autherized_keys

到这里就完成了。

(2)在Windows下使用Putty生成密钥对:

Putty的安装目录下有个puttygenexe程序,我们运行这个程序。

之后点击Generate,开始生成密钥对。我们需要根据提示,在指定方框内随机滑动鼠标。这是为了根据鼠标轨迹,产生一些随机数据。

之后生成结束,我们点击SavePrivateKey将私钥存放在某个目录中。然后赋值最上面文本框中的全部内容,粘贴到Linux服务器端的autherized_key的最后。

我们现在可以关闭这个小程序。

现在打开Putty,在左边的选项中,选择Conneciton_SSH_Auth,在Privatekeyfileforauthentication中,选择刚才保存的私钥路径就可以了。

到此位置,Putty也可以不用密码登录了。

密钥管理ft什么意思?

密钥管理ft是一种安全、可靠、简单易用的SSH密钥对托管服务,帮助用户集中管理SSH密钥对,保护SSH密钥对的安全。

SSH密钥对,简称为密钥对,是为用户提供的远程登录Linux云服务器的认证方式,是一种区别于传统的用户名和密码登录的认证方式。

密钥对是通过加密算法生成的一对密钥。

在本机测试网站没有任何问题,就是上传到搭建好的服务器上就显示不出来验证码了。请专业人士给个提示,大概是服务器的哪一项功能没有开或是配置文件大概是哪里写错了;这个网站的验证码形式大概是先显示一张,然后是在上写数字;目前能显示,就是显示不到里面的数字和字母(查看服务器的GD库以开)

SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。 ssh 的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。 如何使用密钥认证登录linux服务器呢

首先使用工具 PUTTYGENEXE 生成密钥对。打开工具PUTTYGENEXE后如下图所示:

   该工具可以生成三种格式的key :SSH-1(RSA) SSH-2(RSA) SSH-2(DSA) ,我们采用默认的格式即SSH-2(RSA)。Number of bits in a generated key 这个是指生成的key的大小,这个数值越大,生成的key就越复杂,安全性就越高。这里我们写2048

   然后单击Generate 开始生成密钥对:

   注意的是,在这个过程中鼠标要来回的动,否则这个进度条是不会动的。

   到这里,密钥对已经生成了。你可以给你的密钥输入一个密码,(在Key Passphrase那里)也可以留空。然后点 Save public key 保存公钥,点 Save private Key 保存私钥。笔者建议你放到一个比较安全的地方,一来防止别人偷窥,二来防止误删除。接下来就该到远程linux主机上设置了。

1)创建目录 /root/ssh 并设置权限

代码如下:

[root@localhost ~]# mkdir /root/ssh mkdir

命令用来创建目录,以后会详细介绍,暂时只了解即可。

代码如下:

[root@localhost ~]# chmod 700 /root/ssh chmod

命令是用来修改文件属性权限的,以后会详细介绍。

2)创建文件 / root/ssh/authorized_keys

代码如下:

[root@localhost ~]# vim /root/ssh/authorized_keys vim

命令是编辑一个文本文件的命令,同样在后续章节详细介绍。

3)打开刚才生成的public key 文件,建议使用写字板打开,这样看着舒服一些,复制从AAAA开头至 “---- END SSH2 PUBLIC KEY ----“ 该行上的所有内容,粘贴到/root/ssh/authorized_keys 文件中,要保证所有字符在一行。(可以先把复制的内容拷贝至记事本,然后编辑成一行载粘贴到该文件中)。在这里要简单介绍一下,如何粘贴,用vim打开那个文件后,该文件不存在,所以vim会自动创建。按一下字母”i”然后同时按shift + Insert 进行粘贴(或者单击鼠标邮件即可),前提是已经复制到剪切板中了。粘贴好后,然后把光标移动到该行最前面输入ssh-ras ,然后按空格。再按ESC,然后输入冒号wq 即 :wq 就保存了。格式如下图:

   4)再设置putty选项,点窗口左侧的SSh – Auth ,单击窗口右侧的Browse… 选择刚刚生成的私钥, 再点Open ,此时输入root,就不用输入密码就能登录了。

   如果在前面你设置了Key Passphrase ,那么此时就会提示你输入密码的。为了更加安全建议大家要设置一个Key Passphrase。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 【Linux】SSH 使用密码公钥远程登录总结

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情