使用key登陆管理linux服务器/免密码登陆linux服务器

简介:

ssh除了密码验证外,还有一种比较常用的验证方式:key;他的好处除了安全外,还可以实现linux之间的免密码登陆 ,方便管理或者批量维护。

本文介绍一下windows/linux下如何配置key免密码登陆linux服务器

01 [root@A ~]# ssh-keygen -t rsa
02  
03 Generating public/private rsa key pair.
04  
05 Enter file in which to save the key (/root/.ssh/id_rsa):
06 //key保存的路径和文件名
07  
08 Enter passphrase (empty for no passphrase):
09  
10 //key的密码,免密码登陆的话留空
11  
12 Enter same passphrase again:
13  
14 Your identification has been saved in /root/.ssh/id_rsa
15  
16 //生成了私钥/root.ssh/id_rsa
17  
18 Your public key has been saved in /root/.ssh/id_rsa.pub
19  
20 //生成了公钥 /root/.ssh/id_rsa.pub
21  
22 The key fingerprint is:
23  
24 82:8c:2c:52:06:c6:f3:c4:1c:1c:35:b7:cd:5b:42:a2 root@A
25  
26 [root@A ~]# ls /root/.ssh/ //查看一下目录,已经有了这两个文件
27  
28 authorized_keys id_rsa id_rsa.pub known_hosts
29  
30 [root@A ~]#

查看一下服务器ssh服务公钥存放的路径

1 [root@A ~]# cat /etc/ssh/sshd_config |grep AuthorizedKeysFile
2  
3 #AuthorizedKeysFile .ssh/authorized_keys

默认服务器保存公钥的位置是.ssh/AuthorizedKeysFile

所以需要将生成的公钥文件通过scp或者任何方法拷贝到你需要远程登录的服务器的这个文件中

01 [root@B ~]# cd .ssh/
02  
03 [root@B .ssh]# cat id_rsa.pub >authorized_keys
04  
05 //服务器本地ssh客户端默认读取的私钥路径已经包含了/.ssh/id_rsa
06  
07 [root@A .ssh]# cat /etc/ssh/ssh_config |grep IdentityFile
08  
09 # IdentityFile ~/.ssh/identity
10  
11 # IdentityFile ~/.ssh/id_rsa
12  
13 # IdentityFile ~/.ssh/id_dsa

至此你可以直接从A 执行命令ssh ipB

登录到服务器B了,就这么简单。

有一种简单的方法:使用命令ssh-copy-id 直接将本机的key加入到对方服务器的验证文件中

01 [root@A .ssh]# ssh-copy-id
02  
03 Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine
04  
05 [root@A .ssh]# ssh-copy-id -i /root/.ssh/id_rsa root@ipB
06  
07 The authenticity of host 'ipB (ipB)' can't be established.
08  
09 RSA key fingerprint is 17:21:32:02:da:3b:a1:d1:a2:69:12:36:a2:d7:59:ad.
10  
11 Are you sure you want to continue connecting (yes/no)? yes
12  
13 root@ipB's password:
14  
15 Now try logging into the machine, with "ssh 'root@ipB'", and check in:
16  
17 .ssh/authorized_keys
18  
19 [root@A ~]# ssh ipB
20  
21 Last login: Sun Dec 15 19:33:07 2013 from ipA
22  
23 [root@B ~]#

这样执行之后,就可以直接登陆服务器了。

上面都是通过linux的ssh客户端来连接,如果通过本地来使用key登陆的话方法大同小异;

将私钥id_rsa下载到本地,然后导入到客户端的密钥认证配置的地方即可;

以SecureCRT为例,配置位置如下图选择下载下来的私钥文件即可。

crt-key

目录
相关文章
|
存储 网络协议 Ubuntu
【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能
UDP 是一种无连接的、不可靠的传输层协议,位于IP协议之上。它提供了最基本的数据传输服务,不保证数据包的顺序、可靠到达或无重复。与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。 链表 链表是一种动态数据结构,用于存储一系列元素(节点),每个节点包含数据字段和指向下一个节点的引用(指针)。链表分为单向链表、双向链表和循环链表等类型。与数组相比,链表在插入和删除操作上更为高效,因为它不需要移动元素,只需修改节点间的指针即可。但访问链表中的元素不如数组直接,通常需要从
660 2
|
安全 Linux 数据安全/隐私保护
linux root登陆,密码正确但,错误提示su: Authentication failure
通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。
6947 36
|
弹性计算 Linux 网络安全
阿里云服务器怎么登陆,常见登陆方式教程参考
在连接实例时,首先需要完成身份验证,确保只有授权用户能够访问和管理服务器资源,以增强安全性。创建实例时,您可以选择一个系统预设的用户作为初始登陆用户。实例创建完成后,即可用该用户身份登陆。本文将详细介绍不同用户的特点与区别,以及如何管理这些用户和添加额外的远程连接用户。
5531 12
|
Shell 网络安全 数据安全/隐私保护
使用 Python 远程登陆服务器的最佳实践
使用 Python 远程登陆服务器的最佳实践
183 5
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
Linux 网络安全 API
【Azure 应用服务】App Service For Linux 环境中,如何从App Service中获取GitHub私有库(Private Repos)的Deploy Key(RSA key)呢?
【Azure 应用服务】App Service For Linux 环境中,如何从App Service中获取GitHub私有库(Private Repos)的Deploy Key(RSA key)呢?
180 0
|
监控 安全 Linux
Linux服务器如何管理sshd的连接
【6月更文挑战第6天】Linux服务器如何管理sshd的连接
206 4
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(3)
**《从基础到应用云上安全航行指南》——阿里云专家教你如何安全访问和管理ECS资源(3)** 在阿里云的广阔云海中,ECS(弹性计算服务)资源如同航行的船只,承载着我们的业务与数据。如何确保这些
|
存储 安全 网络协议
服务器故障与管理口与raid
服务器故障与管理口与raid
|
弹性计算 Kubernetes 监控
【阿里云弹性计算】阿里云 ECS 与 Kubernetes 集成:轻松管理容器化应用
【5月更文挑战第28天】阿里云ECS与Kubernetes集成,打造强大容器管理平台,简化应用部署,实现弹性扩展和高效资源管理。通过Kubernetes声明式配置在ECS上快速部署,适用于微服务和大规模Web应用。结合监控服务确保安全与性能,未来将深化集成,满足更多业务需求,引领容器化应用管理新趋势。
607 2