关于linux免密登录的配置及ssh客户端基于私钥文件的登录

摘要:
请注意,此处的PublicKey不应被误认为是基于此名称的公钥文件。始终记住,客户端可以使用私钥登录到服务器!

操作系统环境: 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              # 也可以使用ssh-keygen -f /root/.ssh/id_rsa -P ''  非交互式生成密钥对
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:

需要特别注意,私钥文件的权限最好设置为0400,即只允许文件的拥有者有读的权限(当然测试600,700也可以的,不推荐)

如果文件的所属组和其他人有任何权限,使用私钥登录都会登录失败,报错!

[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@host 传递到远端服务器的~/.ssh/authorized_keys

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

对于windows系统下的xshell客户端

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

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

关于linux免密登录的配置及ssh客户端基于私钥文件的登录第1张

putty客户端

对于putty客户端来讲,不能直接使用pem格式的私钥文件(.pem属于OpenSSH格式的密钥)

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

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13047171.html

免责声明:文章转载自《关于linux免密登录的配置及ssh客户端基于私钥文件的登录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇远程桌面mstsc应用Spring service本类中方法互相调用事物失效问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

25 个 Linux 下最炫酷又强大的命令行神器

众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器。 1. exa exa 是一个用来替代 ls 的工具, exa 相比于 ls 增加了很多新的特性,比如:支持不同文件类型可以用不同颜色来展示、exa 比 ls 速度更快一些...

linux 把任务放到后台

公司用的服务器,只能ssh远程操作,每天都会自动退出账户,不知道怎么回事儿,很郁闷。所以每天早起重新登录后发现进程已经关闭了,因为你运行的任务是和terminal关联在一起的,terminal关闭后,你运行的任务自然就关闭了。为了避免此事件发生,需要把任务放到后台运行,方法如下: 1.nohup命令nohup command &如果使用了nohu...

linux-----虚拟机配置

百度网盘有虚拟机安装包以及教程 链接:https://pan.baidu.com/s/1WYfp_EUPiD9vxTspDkoxLA 提取码:0818 一、Linux的简介 1.Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦...

等了整整12年!Linux QQ 终于更新了!

来自:快科技 作者:上方文Q链接:http://news.mydrivers.com/1/681/681039.htm 2019年10月24日,也就是“1024程序员节”的时候,腾讯突然发布了Linux系统版本的QQ,官方也宣称“全新回归”。 这是因为在2008年的时候,腾讯曾经发布过一次Linux QQ,但如同浪花一般随即消失得无影无踪,如今随着Linu...

CentOS5.x、CentOS6.x 使用NFS及mount实现两台服务器间目录共享

一、环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二、安装: NFS的安装配置:centos 5 : portmap:实现RPC(协议)的应用程序 yum -y install nfs-utils portmap centos 6(在CentOS 6.3当中,portmap服务由rpcbin...

linux中Samba服务器的配置

Samba简介     Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器...