OpenSSH入门使用指南

本文详细介绍了OpenSSH的基础结构、客户端和服务端的安装与配置,重点讲解了SSH协议、身份验证、密钥对生成与管理,以及在Win10和Linux系统中的具体应用,包括免密登录、Git与Github链接和多密钥管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The START.

写在前面的话

本文的预设读者是至少入门一种计算机语言且有有简单的Win或Linux命令使用经验。如果你有满足前面两个条件,那么你就是本文的预设读者。如果你没有,那么请做好心理准备,接下来的阅读体验会更加艰难。

在接下来的文章里,主要讲述了OpenSSHSSH的应用两个部分。

  • 在第一个部分OpenSSH中,主要讲述了OpenSSH的结构,OpenSSH客户端与服务端的安装,及其相关命令语法与配置文件。
  • 在第二个部分SSH的应用中,将聚焦于现实工作环境,一步步实现相关的需求。

最后,本文所涉及的所有知识,均源于前人的研究成功,所参考的资料都将在文末给出。若有错误,欢迎各位读者指出!

Part ONE. OpenSSH

本章导读

OpenSSH is the premier connectivity tool for remote login with the SSH protocol. It encrypts all traffic to eliminate eavesdropping, connection hijacking, and other attacks. In addition, OpenSSH provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.(www.openssh.com)

OpenSSH 是使用SSH协议进行远程登录的主要连接工具。它加密所有通讯信息以防止窃听,连接劫持和其他攻击。此外,OpenSSH 还提供了一大套安全隧道功能、多种身份验证方法和复杂的配置选项。(www.openssh.com)

在本章节中,主要讲述OpenSSH的结构——该程序到底是由哪些部分构成的?依次为基础,本章将会讲述OpenSSH的命令的基本使用方法,以及相关配置文件的修改等等。

一)OpenSSH的结构

OpenSSH客户端与服务端

在正式体验OpenSSH服务之前,先让我们预设一个场景。假设现在你手头上有两台电脑,你想要将A电脑中的数据传输到B电脑上,但是此时你却没有U盘等移动存储设备,那怎么办呢?当然,我们有很多方案,例如连接到互联网上,然后通过QQ传输文件,又或者通过某个局域网之间传输文件的程序也可以传输。不管你是否有传输文件的方案,现在,有一种全新的传输方案摆在你的眼前——OpenSSH。

一个完整的OpenSSH包含两个程序。一个是客户端(Client)程序,另一个是服务端(Server)程序。一般情况下,客户端作为命令的传输者,服务端作为命令的接收者。还是回到之前的例子上,我们可以在A电脑上安装OpenSSH客户端程序,在B电脑上安装OpenSSH服务端程序,然后通过客户端程序中的scp命令,就可以将文件从客户端拷贝到服务端了。(在本小节末尾会给出Windows和Linux两个系统的OpenSSH服务的安装方法)

然而,实际情况比上述例子还复杂一点,因为我们必须要考虑一个很实际的问题:那就是我们该怎么保证接收数据的服务器是我们的目标服务器呢?这就是SSH协议存在的真正原因——身份认证。两台终端设备遵守SSH协议后,就可以极大地保证数据传输的安全性。

身份认证

SSH协议的具体内容涉及密码学的相关内容,本章节不做更深入的讨论。我们只要知道,遵守SSH协议后,为了保证数据的安全性,OpenSSH为我们提供了两种身份验证:密码认证密钥认证

前者密码认证很容易理解,就是像我们平常登陆QQ一样,输入账号密码就可以登陆。但是实际上,这种验证方法仍旧不够完善。一方面,这不够安全,你的密码也有可能被某个中间人监听;另一方面,这不够便利,每次输入密码过于麻烦,我想只输入一次密码就行了。根据以上两种需求,就诞生了第二种认证方法——密钥认证。这种身份认证方法就像是特工的秘密碰头一样,张三问你一个问题,然后李四如果回答对了,说明李四就是自己人,否则就不是。在OpenSSH中,通过OpenSSH客户端程序中的ssh-keygen命令就可以生成这样的问题和答案——一对密钥。其中密钥中的公钥是问题,私钥是答案。

现在回到最开始传输文件的例子上。我们将公钥传输给B电脑上,将私钥保留在A电脑中,这时候,B电脑的服务端程序就会用公钥发出询问,当A电脑的客户端程序接收到后,就会用私钥解答,再将答案传输给服务端中,这时候服务端就做出了匹配,发现回答正确,这时候就可以保证传输的对象是目标主机了。

经过以上的密钥认证操作以后,就可以既保证安全性,也可以保证便利性。

最后,在实际工作环境中,你也许要面临着需要同时使用许多不同的密钥的情景。例如,你既要和Github服务器链接,也要和Gitee服务器链接,同时,你还管理着一台云服务器。最要命的是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值