1396 字
7 分钟
Linux入门记录 - SSH篇
2025-10-27

SSH连接服务器#

现在已经有了很多 SSH 客户端,提供了更方便、更直观的 SSH 登录方式。例如 TermiusTabby,如果你在手机平台,也可以尝试 ServerBox 这个十分好用的客户端。但本篇主要从命令行入手,毕竟图形客户端已经足够简单,即便是小白也可以轻松上手,想必不需要我过多赘述。

基于口令登录#

首先打开你的命令行终端,Windows 可以使用 PowerShell,Linux 可以使用系统自带终端,也可以尝试一些开源好用的终端,例如 Zsh

服务器厂商会提供你用户名、密码以及 IP,如果没有修改默认 SSH 端口的话,按照以下格式填写即可连接服务器。

ssh 用户名@IP地址

如果服务器厂商设置的是 22 端口以外的端口,可以加 -p 指定端口访问

ssh -p 端口 用户名@IP地址

第一次连接服务器会出现以下文字,意思是这台服务器你的电脑不认识它,问你是否真的想要连接这台服务器,输入 yes 确认就开始连接

The authenticity of host '59.37.60.94 (59.37.60.94)' can't be established.
ED25519 key fingerprint is SHA256:wkYybTRhNp0OHBBfqdyIoWeoml1I4UQ6Rmat2XBxnXc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

之后会让你输入服务器的密码,各位如果第一次使用Linux服务器应该会发现输入密码结果什么都没显示,不过这是正常现象,实际上密码已经输入进去了,如果密码正确应该就可以连接上服务器了

root@59.37.60.94's password:

基于密钥的安全验证#

首先找到服务器厂商提供的私钥,将它下载到本地,这里以腾讯云为例

左边找到SSH密钥选项,然后创建密钥或者使用本地密钥,创建本地密钥后面会讲,这里我们直接创建密钥,腾讯云会直接将私钥下载到本地,并将公钥放到服务器内部。

然后将私钥放到用户主目录下的 .ssh 目录。Windows 路径为 C:\Users\用户名.ssh,Linux 路径(以 root 举例)为 /root/.ssh。其实放哪都行,不过自己创建的密钥一般也放在这个路径,方便统一管理。

接着打开终端,开始使用私钥连接服务器。

Linux 对权限要求更严格,需要先为私钥赋予正确权限;Windows 可直接执行下一条连接命令。

chmod 600 私钥路径
ssh -i 私钥路径 用户名@IP地址

这里的 -iidentity 的缩写,表示指定私钥所在的路径。

如果服务器厂商提供的不是 22 端口进行 SSH 连接,也是一样的,加 -p 指定端口进行连接

ssh -i 私钥路径 -p 端口 用户名@IP地址

基于配置文件#

在前面所讲的 .ssh 目录下放置一个 config 文件,按照以下格式填写

Host 自定义主机名1
HostName IP地址1
User 用户名1
Port 端口
IdentityFile 私钥路径
IdentitiesOnly yes
Host 自定义主机名2
HostName IP地址2
User 用户名2
Port 端口
IdentityFile 私钥路径
IdentitiesOnly yes

同样私钥赋予正确权限

chmod 600 私钥路径

连接服务器

ssh 自定义主机名1

SSH加固#

修改SSH默认端口#

因为SSH默认使用22端口作为SSH端口,所以22端口就成了入侵和扫描服务器的首要选择,所以我们最好将默认的22端口换成一个不常用的端口,例如49871端口。

使用 nano 或 vim 编辑 /etc/ssh/sshd_config,找到 Port 这一行,取消注释,并将端口改为一个你认为合适的端口号。

sudo nano /etc/ssh/sshd_config

填写完后CTRL+X保存,按住y退出

Port 49871

在防火墙放行新端口

ufw allow 端口

重启防火墙和SSH

sudo systemctl restart && sudo systemctl restart sshd

注意不要关闭当前窗口避免之前的操作不当导致被关在防火墙外面

重新与服务器建立连接

ssh 自定义主机名1

提示与服务器正确连接,就可以关闭先前的窗口了

使用密钥登录服务器#

使用密钥登录相比使用密码登录更安全、更便利,大部分的服务器厂商在面板提供了密钥安全登录,但是还是有小部分厂商需要自己上传密钥修改配置文件的,所以掌握如何自己配置密钥还是很重要的。

使用ssh-copy-id命令#

Windows 端可以使用 winget 包管理器安装 ssh-copy-id

winget install ssh-copy-id

在本机电脑上创建密钥,直接全部回车即可

ssh-keygen -t ed25519

使用ssh-copy-id自动将公钥放到服务器,并自动配置好相关权限

ssh-copy-id 用户名@IP地址

手动上传公钥#

一样创建密钥

ssh-keygen -t ed25519

VS Code 打开以 .pub 结尾的文件,CTRL+C 复制

创建ssh文件夹

mkdir -p ~/.ssh

将内容写入 ~/.ssh/authorized_keys 文件

nano ~/.ssh/authorized_keys

同样填写完后CTRL+X保存,按住y退出

并赋予相关权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

禁用密码登录#

之后再次打开 sshd_config 文件,找到 PasswordAuthentication 这一行,将注释取消,并将 yes 改为 no

PasswordAuthentication no

重启SSH

sudo systemctl restart sshd

SSH篇完结撒花#

以上便是我的Linux入门记录 - SSH篇。虽说是完结散花,但以后想到和SSH相关的还是会补的,最后希望我的文章对你有所帮助。

Linux入门记录 - SSH篇
https://afool.cc/posts/ssh/
作者
Camellia Lyris
发布于
2025-10-27
许可协议
CC BY-NC-SA 4.0