Secure Shell (SSH) 是一个网络协议,它主要被用来加密客户端和服务端之间的连接。 在客户端和服务端的每一次交互都被加密。 这个教程解释了如何在 Ubuntu 机器上启用 SSH。 启用 SSH 将会允许你远程连接到你的系统,并且执行管理员任务。你将能够通过 scp和sftp安全传输文件。 一、 在 Ubuntu 上启用 SSH默认情况下,当 Ubuntu 最初被安装的时候,通过 SSH 进行远程访问是不被允许的。在 Ubuntu 上启用 SSH 非常的简单直接。 以 root 或者其他 sudo 用户身份执行下面的步骤,在你的 Ubuntu 系统上安装并且启用 SSH。 01.使用Ctrl+Alt+T打开终端,并且安装openssh-server软件包:
* y. H9 Q0 @' Q7 I: G
) ^+ I L' ]4 y; G$ y' usudo apt update
/ _: N/ \& f9 }- q! @7 o/ p) }2 d9 X7 ]4 x8 S
3 { A/ J5 _# E0 P! s: x, ]
0 B e3 y( G) I6 h( xsudo apt install openssh-server* x" c- c9 c8 d$ h5 \# m
+ K! }4 E' Z0 S; z
0 l2 y. Q! j2 H; @5 d# l9 n
当被提示时,输入你的密码并且按 Enter,继续安装。 
02.一旦安装完成,SSH 服务将会被自动启动。你可以验证 SSH 是否正在运行,输入: sudo systemctl status ssh输出将会告诉你服务正在运行,并且启用开机启动: - 2 v, N! l9 Y% S$ i
& u7 F' l4 _8 i5 b9 H' [6 v● ssh.service - OpenBSD Secure Shell server
# N6 R! U7 r: p) O8 s
4 I' ?; j: f2 o4 n7 o( }
0 \5 x) c. A. i7 W( i+ `
4 k/ W& W- h2 h3 K Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
\+ r7 E7 x3 G5 @7 a: o, N+ B/ Y8 ~
- & B1 q/ m& o+ t J: j
/ {% G0 Y1 |2 U
Active: active (running) since Mon 2020-06-01 12:34:00 CEST; 9h ago
* U# [( L1 `: |+ e: ~, A n5 e3 I2 f& _' _* X! U& c1 b& _
- G8 P0 w X1 z P
. q: e6 g6 N' n% h3 a
...4 W9 i4 ~- ^* m
a. g9 k" O( X% E) _# f% k
) G- f7 R/ t5 P" n2 A. q
按q返回命令行。 03.Ubuntu 自带一个配置防火墙配置工具,称为 UFW。如果防火墙在你的系统上被启用,请确保打开了 SSH 端口: sudo ufw allow ssh就这些。现在你可以从任何远程机器上通过 SSH 连接到你的 Ubuntu 系统。Linux 和 macOS 系统默认都安装了 SSH 客户端。想要从一个 Window 机器上连接,使用一个 SSH 客户端,例如:PUTTY。 二、连接到 SSH 服务器想要在局域网内连接到你的 Ubuntu 机器,以下面的格式输入 ssh 命令,加上用户名和 IP 地址。 ssh username@ip_address确保你将`username`修改成你自己的用户名,`ip_address`修改成你安装了 SSH 的 Ubuntu 机器的 IP 地址。如果你不知道你的 IP 地址,你可以使用ip命令轻易地找到它: ip a
你可以从输出中看到,系统 IP 地址是10.0.2.15。 一旦你找到 IP 地址,通过运行下面的ssh 命令登录远程机器: ssh linuxize@10.0.2.15当你第一次连接时,你将看到下面的信息: - 6 I' P3 v: Q, ^7 B! V z
% }4 L2 f {$ {4 s" R9 N# r
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
, h) N! j* J+ b& f( }# b! B. l" V2 {# ~1 J
; ]% R& O. Y' I/ x' L$ ]- ^
0 [% F% o7 c3 T2 M' J5 C5 a ?ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
8 v3 l6 q! t9 u# z
* d4 n: Y! H3 [4 A4 T _$ u
" L, u0 c( ^+ ~- Z8 F) J/ Z
9 I0 T0 F: }* p5 X% F% l3 ]Are you sure you want to continue connecting (yes/no)?- l) Q$ G6 G# y2 t2 r
9 ?. i: o b! k/ K1 C* V* O
9 J& S; z0 L: F0 y5 ]& r: j1 _
输入yes并且你将会被提示输入你的密码:
" ^4 P2 W) o8 y/ J0 j- e& ~- Y; Q. C. G; I- _$ ]
Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.
! l+ o! Q4 F& q" |1 ^
2 ~5 b2 H" F5 V- f z7 [
8 z5 z! ^( W+ R( y3 _9 t& D; d7 ^4 s
linuxize@10.0.2.15's password:
0 c0 l! m; D3 g
2 F5 o- j: ?# c* ]/ Y. d! i( D) [% r9 w" d* E" D0 \# J' \
一旦你输入密码,你将会看到默认的 Ubuntu 消息:
# z7 F, v. C1 m' L& W1 D3 z$ Y6 W; y! T# H( a) Y
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)
$ O7 b; s4 Y: {& L& t! H4 @* X5 N6 v; X0 x6 f5 [
- ) Z- Y9 e9 T* v- h! I
- |. I0 U1 [; D1 i/ D! Z
/ I: H3 | w8 h
* w. Q, Z, h+ W2 A
- 6 z; P0 }! Z4 c
- E' ]/ [. F& l3 n) P) d * Documentation: https://help.ubuntu.com4 I2 O. w( x. R" t9 ~
( w4 `9 D6 O7 Q; o* s3 Q9 {
8 f6 H; r4 b. s% g, G
+ m$ ?2 B0 q, s: z * Management: https://landscape.canonical.com7 O" A$ d8 L, X" t j
. l+ [" i. E# i# |- + m: ]7 q" J7 y
& ~. i4 B, E0 L! ?9 a9 z * Support: https://ubuntu.com/advantage
( _+ W" x( |4 ~. A
5 V2 F7 K9 w7 w/ L
) O: \1 ^8 \3 n8 j
/ a7 X4 D1 L; @9 }: A' a...9 N& N+ N7 n0 H3 |
. T* I8 c8 J( u2 x. P
( h) x s' g( H$ g- X* d8 y
现在你可以登录到你的 Ubuntu 机器上。 三、连接到 NAT 后面的 SSH想要通过互联网连接到你的 Ubuntu 机器,你需要知道你的公网 IP 地址,并且配置你的路由器接收端口22的数据,并且发送它到正在运行 SSH 的 Ubuntu 机器。 想要获取你尝试通过 SSH 连接的机器的公网 IP,在这个机器上访问 URL 地址:https://api.ipify.org。 当设置端口转发时,每一个路由器都有不同的方式来设置端口转发。你应该参考你的路由器文档,关于如何设置端口转发的信息。简单来讲,你应该输入之前设置的 SSH 端口号 22,以及之前服务器的私有 IP 地址。 一旦你找到 IP 地址,配置你的路由器,输入: ssh username@public_ip_address如果你将你的机器暴露在互联网中,你最好采取一些安全措施。最基础的一个措施就是配置你的路由器接受一个非标准端口的 SSH 流量,并且转发到你运行 SSH 服务的机器的端口22。 你也可以设置 SSH 密钥公钥验证方式,之后你就可以不使用密码就可以连接到你的 Ubuntu 机器上了。 四、在 Ubuntu 上禁用 SSH想要在你的 Ubuntu 系统上禁用 SSH 服务器,简单停止 SSH 即可,输入: sudo systemctl disable --now ssh稍后,你可以重新启用,输入: sudo systemctl enable --now ssh五、总结我们已经向你展示如何在你的 Ubuntu 20.04 上安装和启用 SSH。 现在你可以登录你的机器,并且通过命令行执行每天的 sysadmin 任务。 如果你管理多个系统,你可以通过将你的所有连接都定义在 SSH 配置文件中,来简化工作流程。修改默认的 SSH 端口将会使得你的系统更安全,减少自动攻击的风险。 想要获取更多如何配置你的 SSH 服务器 的信息,阅读 Ubuntu SSH 配置指南 和 官方 SSH 手册。 |