Python之Web开发中级教程----搭建SSH环境

31 篇文章 0 订阅
20 篇文章 0 订阅
本文详细介绍了如何在Ubuntu系统中配置SSH服务,包括安装、启动、防火墙设置,以及使用SSH-keygen生成和管理公钥实现免密码远程连接的过程。
摘要由CSDN通过智能技术生成

Python之Web开发中级教程----搭建SSH环境

SSH 的全称是 “安全的 Shell(Secure Shell)”,它功能强大、效率高,这个主流的网络协议用于在两个远程终端之间建立连接。让我们不要忘记它名称的“安全”部分,SSH 会加密所有的通信流量,以防止如劫持、窃听等攻击,同时提供不同的身份认证方式和无数个配置选项。

SSH 协议基于客户端-服务器(server-client)(CS)架构。“服务器(Server)”允许“客户端(Client)”通过通信通道进行连接。该信道是经过加密的,信息交换通过 SSH 公私钥进行管理。

在 Ubuntu 系统中,开启 SSH 服务可以让远程用户通过 SSH 安全地访问服务器。下面是开启 SSH 的步骤:

  • 1、安装openssh-server

注意,在安装新的包或者软件前,要更新你的 Ubuntu 系统,以确保运行的是最新版本的程序。

Sudo apt-get update

sudo apt-get install openssh-server

如果SSH服务没有启动,则执行

Sudo service ssh start

禁用SSH服务的命令:sudo systemctl disable

启用SSH服务的命令:sudo systemctl enable

  • 2、检查服务器状态

service ssh status

你还可以使用 systemctl 命令:

sudo systemctl status ssh

如果你的结果中 SSH 服务没有运行,使用这个命令运行它:

sudo systemctl enable --now ssh

3、允许SSH通过防火墙

Ubuntu 带有名为 UFW(简单的防火墙(Uncomplicated Firewall))的防火墙,这是管理网络规则的 iptables 的一个接口。如果启动了防火墙,它可能会阻止你连接服务器。

想要配置 UFW 允许你的接入,你需要运行如下命令:

sudo ufw allow ssh

UFW 的运行状态可以通过运行 sudo ufw status 来检查。

现在,我们的 SSH 服务器已经开始运行了,在等待来自客户端的连接。

注:用命令开启防火墙:sudo ufw enable

    用命令关闭防火墙:sudo ufw disable

用命令重启防火墙:sudo ufw reload

用查看防火墙版本:sudo ufw version

默认允许外部访问本机:sudo ufw default allow

默认拒绝外部访问本机:sudo ufw default deny

允许外部访问53端口:sudo ufw allow 53

查看53端口的监听状态:sudo netstat -tunlp | grep 53

  • 4、Ifconfig 查看IP

telnet 127.0.0.1 22(127.0.0.1是本地地址,22是SSH专属的端口号)

二、SSH远程连接

环境准备:Windows10系统作为本地机器,Ubuntu系统作为远程机器,目的从Windows SSH远程链接Ubuntu系统。

两种方法链接:

第一种、密码认证方式SSH远程连接

缺点:每次连接都需要输入密码。

在Windows中打开cmd.exe

执行结果:

第二种、基于公钥SSH远程连接

原理:在本地机器上生成一对公钥和私钥,然后手动把公钥上传到远程服务器。这样每次登录时,远程主机会向用户发送一段随机字符串,而用户会用自己的私钥对这段随机字符串进行加密,然后把加密后的字符串发送给远程主机,远程主机会用用户的公钥对这段字符串进行解密,如果解密后的字符串和远程主机发送的随机字符串一致,那么就认为用户是合法的,允许登录。

SSH 支持多种用于身份验证密钥的公钥算法, 包括 RSA、DSA、ECDSA 和 ED25519 等,其中 RSA 算法是最常用的,因为它是 SSH 协议的默认算法,所以我们这里以 RSA 算法为例来生成密钥,并配置免密码远程连接。

ssh-keygen 是为 SSH 创建新的身份验证密钥对的工具。此类密钥对用于自动登录、单点登录和验证主机,常用参数定义如下:-t 参数指定密钥类型;-b 参数指定密钥长度

步骤:

1、生成秘钥对

在Windows中打开cmd.exe,执行ssh-keygen -t rsa -C gocntest

  • 2、复制公钥

在Windows中找到保存私钥的路径,将同目录下的公钥拷贝到ubuntu系统中

  • 3、将公钥文件拷贝到ubuntu系统中

我采用将id_rsa.pub文件放在ISO中,加载在虚拟机的CD-ROM中。在Ubuntu系统中读出来的CD-ROM如下图:

  • 4、将公钥中的内容 复制粘贴到.ssh/authorized_keys文件中

在Ubuntu的终端中,执行:cat [拷贝过来的公钥文件]

进入/home/go/.ssh/目录下

执行gedit authorized_keys

  • 4、在windows系统中,远程连接Ubuntu

Ubuntu系统中执行ifconfig查看IP地址

Windows系统中执行远程连接命令:

ssh-keygen命令参数详解

-b BITS

指定密钥长度

-e

读取私有或公共 OpenSSH 密钥文件并以 -m 选项指定的格式之一将密钥打印到标准输出。

-C

添加注释

-f FILENAME

指定用来保存密钥的文件名

-i

以 -m 选项指定的格式读取未加密的私钥(或公钥)文件,并将 OpenSSH 兼容的私钥(或公钥)打印到 stdout。

-l

显示公钥文件的指纹数据

-m KEY_FORMAT

为 -i(导入)或 -e(导出)转换选项指定密钥格式。支持的密钥格式为:“RFC4716”(RFC 4716/SSH2 公钥或私钥)、“PKCS8”(PEM PKCS8 公钥)或“PEM”(PEM 公钥)。 默认转换格式为“RFC4716”。

-N

提供一个新密语

-P PASSPHRASE

提供(旧)密语

-q

静默模式

-t

指定要创建的密钥类型。可能的值为“dsa”、“ecdsa”、“ecdsa-sk”、“ed25519”、“ed25519-sk”或“rsa”。

-y

从 OpenSSH 格式的私钥导出公钥

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhengyuanyehit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值