操作系统环境: CentOS Linux release 7.7.1908 (Core)

1、首先在linux服务器上,使用ssh-keygen命令生成密钥对文件(一直回车即可,默认使用rsa算法),如下图所示

其中还支持的算法有dsa | ecdsa | ed25519 | rsa | rsa1,使用其他算法只需要使用-t选项指定即可

(The possible values are "rsa1" for protocol version 1 and "dsa", "ecdsa", "ed25519", or "rsa" for protocol version 2.)

[root@webserver ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1v4uvRWnv6BSInIaRxctOat2woXxHHFyiY0yN2MKH30 root@webserver
The key's randomart image is:
+---[RSA 2048]----+
| .oBo. |
| . = #+E |
| o % X |
| = B |
| o S . . .|
| o X + . + |
| B + +. .o |
| . ...o... |
| .++. .o|
+----[SHA256]-----+
[root@webserver ~]#

2、如上命令所示,执行完后,会在~/.ssh目录下生成id_rsa(私钥文件)和id_rsa.pub(公钥文件)

3、然后将公钥文件内容,追加到sshd配置文件中AuthorizedKeysFile指令定义的文件,其默认值为.ssh/authorized_keys文件

[root@webserver ~]# cd
[root@webserver ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

4、当然至此,服务器公钥文件即使删除了也是可以的,而私钥则是给客户端使用的,交给客户端后,对服务器本身来说也是非必须的

关于ssh客户端使用密钥访问的方式,客户端取得私钥文件,可以对其重命名,以达到见名知义的效果,如 webserver_id_rsa.pem

对于linux系统ssh客户服务端

只需要使用ssh -i 私钥文件  user@host 即可以访问,如下,其中192.168.100.128为上面的webserver:

[root@client ~]# ssh -i webserver_id_rsa.pem root@192.168.100.128
Last login: Thu Jun 4 22:16:57 2020 from 192.168.100.89
[root@webserver ~]#

另外有时,也会看到有人不用-i指定密钥也是可以免密登录,这是由于ssh客户端配置文件/etc/ssh/ssh_config,

默认有IdentityFile指令,指定了私钥文件,如# IdentityFile ~/.ssh/identity(还有~/.ssh/id_rsa、~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ed25519)

大部分情况是自己生成密钥对,通过ssh-copy-id  -i 公钥文件  user@远程主机IP 传递到远端服务器的.ssh/authorized_keys

而此时ssh去连接远程主机时,刚好私钥文件,就是刚生成的~/.ssh/id_rsa,所以就不用特意指定,当然也可能客户端配置明确指定了私钥文件

对于windows下的系统xshell客户端

只需要在登录弹窗的Public Key(U) 处通过浏览选择私钥文件,或者直接导入私钥,以后就可以直接在下拉中可以看到!

特别注意,这里的Public Key(U) 不要根据这个名称,误以为公钥文件,始终记住,客户端登录服务器,是使用私钥即可!

putty客户端

对于putty客户端来讲,不能直接使用pem格式的私钥文件

需要先使用puttygen.exe小程序将pem格式的私钥文件,转换成putty所能识别的.ppk格式,

关于linux免密登录及ssh客户端的使用的更多相关文章

  1. linux免密登录ssh验证配置方法及常见错误解决

    目标:从服务器A免密登录服务器B [配置方法] 1.在服务器A生成密钥文件,直接使用以下命令: ssh-keygen 中间遇到输入内容一路回车即可,完成后会在 ~/.ssh 目录下生成两个文件:id_ ...

  2. ssh-keygen Linux 免密登录

    一.选择算法和密钥大小 rsa - 基于分解大数的难度的旧算法.RSA建议密钥大小至少为2048位,4096位更好.RSA正在变老,并且在保理方面取得了重大进展.可能建议选择不同的算法.在可预见的将来 ...

  3. linux免密登录配置

    第一步:安装openssh-clients yum install -y openssh-clients.x86_64第二步:生成密钥 ssh-keygen第三步:拷贝公钥到其他机器 ssh-copy ...

  4. linux免密登录和设置别名

    一.免密登录 (1) 配置公钥   ssh-keygen (2)让远程服务器记住公钥   ssh-copy-id   用户名@ip地址或域名 二.设置别名 (3)在~/.ssh目录下创建并编辑conf ...

  5. ssh linux免密登录。。。。生产共钥到另一台主机

    一.第一种方式: 1.ssh-keygen -t rsa -t : 加密方式 默认为rsa 可以省略不写 加密方式选 rsa|dsa 2.将 .pub 文件复制到目标机器的 .ssh 目录, 并 ca ...

  6. Linux免密登录

    ssh连接上服务器 ssh -p 端口 用户名@ip地址 获取本地的pub ssh key cd ~/.ssh vi id_rsa.pub 拷贝里面的内容 将拷贝的内容放到服务器的authorized ...

  7. linux 免密登录

    ssh-keygen -t rsa -P "" ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址

  8. Linux 双向 SSH 免密登录

    原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...

  9. (11)ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

随机推荐

  1. React:Component

    web开发由web pages过渡到web app 后,开发的模式也发生了变化,由传统的主张结构.样式.行为分离到现在的组件化,把应用的各个部分看成解耦的部分,每部分自包含js.css和html,以方 ...

  2. chosen.jquery.min.js select2.js 弊端

    chosen.jquery.min.js --将select放在页面最下方,会导致页面高度增加,最下方空白多出来 select2.js --点击select 但未选择,然后移出鼠标,发现其他文本框.关 ...

  3. 王艳 201771010127《面向对象程序设计(java)》第十周学习总结

    一:理论部分. 1.泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 1)泛型(参数化类型):在定义类.接口和方法时,通过类型参数指示将要处理的对象类型.如ArrayList类是一个泛型程 ...

  4. LightOJ1236

    题目大意: 给你一个 n,请你找出共有多少对(i,j)满足 lcm(i,j) = n (i<=j) . 解题思路: 我们利用算术基本定理将 n,i,j 进行分解: n = P1a1 * P2a2 ...

  5. 【漫画】ES原理 必知必会的倒排索引和分词

    倒排索引的初衷 倒排索引,它也是索引.索引,初衷都是为了快速检索到你要的数据. 我相信你一定知道mysql的索引,如果对某一个字段加了索引,一般来说查询该字段速度是可以有显著的提升. 每种数据库都有自 ...

  6. Shone.Math开源系列1 — 基于.NET 5实现Math<T>泛型数值计算

    Shone.Math开源系列1 — 基于.NET 5实现Math<T>泛型数值计算 作者:Shone .NET 5 preview 4已经可用了,从微软Build2020给出的信息看,.N ...

  7. html文本超出加省略号

    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...

  8. 像宝石一样的Java原子类

    十五年前,多处理器系统是高度专业化的系统,通常耗资数十万美元(其中大多数具有两到四个处理器). 如今,多处理器系统既便宜又丰富,几乎主流的微处理器都内置了对多处理器的支持,很多能够支持数十或数百个处理 ...

  9. akka-typed(1) - actor生命周期管理

    akka-typed的actor从创建.启用.状态转换.停用.监视等生命周期管理方式和akka-classic还是有一定的不同之处.这篇我们就介绍一下akka-typed的actor生命周期管理. 每 ...

  10. 设计Dog类 代码参考

    #include <iostream> #include <string> using namespace std; class Dog { private: string n ...