SSH连接服务器
现在已经有了很多 SSH 客户端,提供了更方便、更直观的 SSH 登录方式。例如 Termius、Tabby,如果你在手机平台,也可以尝试 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地址这里的 -i 是 identity 的缩写,表示指定私钥所在的路径。
如果服务器厂商提供的不是 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 自定义主机名1SSH加固
修改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 ~/.sshchmod 600 ~/.ssh/authorized_keys禁用密码登录
之后再次打开 sshd_config 文件,找到 PasswordAuthentication 这一行,将注释取消,并将 yes 改为 no
PasswordAuthentication no重启SSH
sudo systemctl restart sshdSSH篇完结撒花
以上便是我的Linux入门记录 - SSH篇。虽说是完结散花,但以后想到和SSH相关的还是会补的,最后希望我的文章对你有所帮助。