您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

如何向服务器添加 ssh 公钥

时间:2023-03-13 14:48:41  来源:微信公众号  作者: TIAP

使用用户账号进行 ssh 连接认证有密码被泄露的风险,为了规避这个风险,可以使用密钥的方式进行身份认证。使用密钥就需要将公钥添加到服务器,我们今天介绍一下如何将公钥添加到服务器。

我们假设大家了解 ssh 的基本概念,且在 linux 服务器上已经启动了 ssh,个人计算机上已经生成了 ssh 密钥。现在需要做的就是将公钥上传到服务器的授权密钥,这样就可以不需要账号密码来访问服务器了。

前置条件

在正式开始介绍之前,我们需要准备的东西如下:

1)目标服务器已经启用 ssh;

2)已经生成了公钥和私钥(使用命令 ssh-keygen -t rsa);

3)在服务器上有可用的账户(用户名和密码,root 也可以);

4)知道服务器的 IP 地址。

满足上述四个条件后,接下来我们就来看看如何使用公钥身份认证。

方法1:自动将ssh密钥复制到服务器

第一种方法是用户将其个人计算机的公钥复制到远程服务器上的授权密钥列表中。

这里,我假设你能够使用 ssh 登录到远程服务器 user_name@ip_of_server,它会询问你的帐户密码,然后您进入服务器。

如果你将公钥添加到服务器,那么就应该可以在不输入密码的情况下登录。

OpenSSH 提供了一个称为  ssh-copy-id 的工具,用于将 ssh 公钥复制到远程系统,它还可以创建所需的目录和文件。如下命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub YOUR_USER_NAME@IP_ADDRESS_OF_THE_SERVER

出现系统提示时,输入远程服务器上用户帐户的密码,公钥就会自动复制到远程服务器上的相应文件夹中。

上述命令中有个路径:~/.ssh/id_rsa.pu,这是 ssh 公钥的默认位置,大家需要根据自己实际情况修改这个路径。

方法2:手动将 ssh 公钥添加到服务器

第一种方法在用户端执行操作。假设你是系统管理员,你的服务器不允许通过密码进行 ssh 登录,那么访问服务器的唯一方法是使用 ssh 公钥身份验证。

在这种情况下,你可以要求最终用户提供其公钥。现在,你可以做的是创建 .ssh/authorized_keys 目录,然后在这里复制公钥。

步骤1:获取公钥

键入如下命令,要求用户提供公钥:

cat ~/.ssh/id_rsa.pub

它将显示一个以 ssh-rsa 开头的长字符串:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

你可以通过电子邮件或即时消息工具来获取上述文本。

步骤2:在用户的主目录中创建ssh目录(作为sysadmin)

注意,你必须在最终用户的主目录中创建这些新目录和文件,而不是你的主目录(root/sysadmin)。

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

然后使用文本编辑器(比如 vim)打开这个文件 /home/user_name/.ssh/authorized_keys,并在此处添加用户公钥:

vim /home/user_name/.ssh/authorized_keys

保存并关闭。

步骤3:为文件设置权限

然后我们需要为文件设置适当的权限,否则回看到类似 Permission denied (publickey) 的报错信息。

首先,确保设置正确的文件权限:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

由于我们使用 root 或我们自己的管理员帐户为其他用户创建了这些文件,所以需要更改用户的所有权:

chown -R username:username /home/username/.ssh

这样就完成了,可以让最终用户尝试登录一下了。



Tags:ssh   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
如何使用PHP SSH2模块执行远程Linux命令
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。下面我将为大家详细介绍一下该扩展的...【详细内容】
2024-01-26  Search: ssh  点击:(102)  评论:(0)  加入收藏
深入浅出SSH隧道穿透
SSH(Secure Shell)是一种常用的远程登录和文件传输协议,而SSH隧道穿透是SSH协议的一个强大功能。通过SSH隧道,我们可以在两个主机之间建立一个加密的通道,实现安全传输数据和访问...【详细内容】
2024-01-09  Search: ssh  点击:(72)  评论:(0)  加入收藏
利用SSH加密实现的HTTP隧道分析与检测
1.隧道介绍Chisel是一个快速稳定的TCP/UDP隧道工具,该工具基于HTTP实现,并通过SSH加密保证通信安全。Chisel可以进行端口转发、反向端口转发以及SOCKS流量代理,使用GO语言编写,...【详细内容】
2023-10-26  Search: ssh  点击:(264)  评论:(0)  加入收藏
Linux如何设置ssh密钥(免密码)登录
前言我们在使用ssh客户端远程连接Linux服务器时,为了考虑安全方面的因素,通常使用密钥的方式来登录。密钥分为公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,私钥是由个人...【详细内容】
2023-09-13  Search: ssh  点击:(324)  评论:(0)  加入收藏
让Linux容器变身SSH登录终端,轻松远程管理你的服务器
引言大家好,我是一位不断学习Linux和Python技术的小伙伴,今天我将分享一个有趣且实用的技巧,即如何在Linux服务器上安装的Docker容器中启用SSH服务,使得这个容器能够通过SSH方式...【详细内容】
2023-08-20  Search: ssh  点击:(178)  评论:(0)  加入收藏
SSH免密钥登录
一、手动运行及原理本地端、服务端执行如下命令:rm -rf ~/.sshmkdir ~/.sshchmod 700 ~/.ssh本地客户端执行如下命令:ssh-keygen本地执行:上传到服务端并改名scp ~/.ssh/id_rsa...【详细内容】
2023-08-17  Search: ssh  点击:(244)  评论:(0)  加入收藏
什么是ssh?一文带你了解
在数字化时代,远程访问计算机和服务器已成为日常工作不可或缺的一部分。然而,随之而来的安全风险也引起了人们的关注。幸运的是,有一个强大而安全的解决方案,它就是SSH(Secure Sh...【详细内容】
2023-07-14  Search: ssh  点击:(242)  评论:(0)  加入收藏
Webssh搭建
网页端ssh搭建,更便捷地连接服务器。一、前因曾几何时,网页ssh对我而言,纯属虚设。毕竟,就算没带电脑,也可以用手机应应急。可是当你面前,手机电脑都有时,你是不会对着6寸屏幕去扒...【详细内容】
2023-05-28  Search: ssh  点击:(219)  评论:(0)  加入收藏
如何golang使用ssh隧道连接rabbit-mq?
在生产环境中,如mysql数据库服务、rabbit-mq消息队列服务、redis缓存服务等。为了安全,这些服务的通常端口都是不对外网开放的。有时候,我们需要本地访问这些服务,要如何设置呢?...【详细内容】
2023-05-16  Search: ssh  点击:(340)  评论:(0)  加入收藏
修改sshd端口时的报错
编辑/etc/ssh/sshd_config文件,修改sshd端口后,systemctl restart sshd重启sshd报错:-- Unit sshd.service has begun starting up.5月 13 00:32:53 localhost.localdomain ssh...【详细内容】
2023-05-12  Search: ssh  点击:(392)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(60)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(70)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(55)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(75)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(44)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(61)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(65)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(113)  评论:(0)  加入收藏
站内最新
站内热门
站内头条