如何使用 SSH 登录连接远程服务器?
Secure Shell(SSH)是一种用于安全访问和管理远程系统的协议。它对客户端与服务器之间的通信进行加密,保护数据免受未经授权的访问,并增强系统安全性。
SSH 为开发者、系统管理员和 IT 技术人员提供了一种安全、高效的方式,无需亲临现场即可远程访问计算机。这提升了工作效率和系统管理能力。此外,SSH 简单易用,并支持多种工具和客户端。除了远程访问之外,它还可以用于文件传输、执行命令,甚至建立隧道连接。
本指南将逐步介绍如何在 Windows、Linux 和 macOS 上使用 ssh 登录命令通过 SSH 连接远程服务器。
SSH 是如何工作的?(如何通过 SSH 登录服务器)
SSH 通过在客户端与 SSH 服务器(sshd)之间建立安全连接来工作。
在上一节中,ssh 命令充当客户端,而远程系统运行 SSH 服务器(sshd)。
大多数 Linux 系统会在开机时自动启动 SSH 服务器。但是,如果它没有运行,您可能需要通过基于 Web 的控制台或本地控制台访问服务器,手动启动它。
在 Ubuntu 上启动 SSH 服务器
如果 SSH 服务器没有运行,您可以使用以下命令启动它:
$ sudo systemctl start ssh
服务器运行后,您就可以通过 SSH 远程登录了。
$ sudo systemctl status ssh
如何在 Windows 中使用 SSH?
如果您使用的是 Windows 10 或更高版本,系统已内置 SSH,因此设置非常简单。
在 Windows 10 上启用 SSH
- 打开“设置”,进入“应用 > 可选功能”。
- 检查是否已安装 OpenSSH 客户端。如果没有,请点击“添加功能”,搜索 OpenSSH Client 并安装。
连接到远程服务器
启用 SSH 后,您可以使用 PowerShell 或命令提示符连接到远程系统:
ssh username@server_ip
将 username 替换为您的实际用户名,将 server_ip 替换为远程服务器的 IP 地址。
在旧版 Windows 中使用 PuTTY
如果您使用的是 Windows 8 或更早的版本,系统默认不包含 SSH,您可以使用 PuTTY,这是一款带有图形界面的免费 SSH 客户端:
1. 从 PuTTY 官方页面下载并安装 PuTTY。
2. 打开程序并输入服务器的 IP 地址。
3. 将端口设置为 22(默认 SSH 端口)。
如果您更喜欢图形界面而非命令行工具,PuTTY 也是一个很好的选择。
如何在 Linux 中使用 SSH 登录?
大多数 Linux 发行版都预装了 SSH。要验证您的系统上是否可以使用 SSH,请打开终端并运行以下命令:
$ ssh
在 Linux 上安装 SSH
如果尚未安装 SSH,您可以使用包管理器进行安装。对于 Ubuntu 等基于 Debian 的发行版,请使用:
$ sudo apt-get install openssh-client
连接到远程服务器
安装 SSH 后,您可以运行以下命令与远程服务器建立安全连接:
$ ssh username@server_ip
在上述命令中,您需要将 username 替换为您的实际用户名,将 server_ip 替换为远程服务器的 IP 地址。
如何在 Mac 上使用 SSH?
按照以下步骤在 macOS 上建立 SSH 连接:
点击 Dock 中的“终端”图标启动它。
发起 SSH 连接:按以下格式使用 SSH 命令:
ssh username@hostname
例如,如果用户名是 test,设备是 Centos.local,命令如下:
ssh test@Centos.local
确认连接:如果是首次连接,请在提示时输入 Yes 以验证连接。
输入密码:在提示时输入密码以验证会话。
退出 SSH 会话:要结束会话,可以按 CTRL+D,或输入:
exit
关闭会话可以防止误发送命令,并提升安全性。
常用 SSH 命令和功能
与远程服务器建立 SSH 连接后,您可以执行各种任务,例如建立隧道、传输文件和执行远程命令。
1. 使用 SSH 进行安全端口转发
SSH 隧道可以在本地系统和远程系统之间安全地路由流量。要设置本地端口转发,请使用:
ssh -L 8080:localhost:3306 user@192.168.1.110
在此示例中,本地计算机上的 8080 端口会将流量转发到位于 192.168.1.110 的远程服务器的 3306 端口。
2. 安全的文件传输与管理
SSH 还支持使用 SCP 和 SFTP 进行加密文件传输。
- 使用 SCP 将文件从本地传输到远程:
scp report.pdf user@192.168.1.110:/home/user/documents/
此命令会将 report.pdf 从本地系统安全地复制到远程服务器上的 /home/user/documents/ 目录。
- 使用 SFTP 管理远程文件:
sftp user@192.168.1.110
连接后,您可以在目录之间切换,以交互方式上传和下载文件。
3. 使用配置文件简化 SSH 远程访问
为了简化连接,您可以配置 SSH 文件(~/.ssh/config)来保存常用的连接设置。
配置示例:
Host devserver
HostName 192.168.1.110
User user
Port 2222
现在,您无需输入完整命令,只需使用以下命令即可连接:
$ ssh devserver
4. 在远程服务器上运行命令
要在不进行交互式登录的情况下远程执行单条命令,请使用:
$ ssh user@192.168.1.110 "df -h"
此命令会从远程服务器获取磁盘使用情况信息(df -h)。
如何使用密钥登录 SSH?
虽然密码认证可以访问远程系统,但使用 SSH 密钥是一种更高效、更安全的方式。
基于密钥的认证是如何工作的?
SSH 密钥认证使用一对加密密钥进行:
- 私钥:安全地存储在客户端设备上,绝不应与他人共享。
- 公钥:可以自由共享,或放置在您希望访问的任何服务器上。
当发起连接时,远程服务器会使用公钥向客户端发送一条加密的质询消息。客户端的私钥对该消息进行解密并发送响应,从而验证其身份。配置好 SSH 密钥后,这一交换过程会自动进行。
生成 SSH 密钥
要设置 SSH 密钥认证,请在本地计算机上运行以下命令生成密钥对:
$ ssh-keygen -t rsa
在设置过程中,系统可能会要求您为密钥文件设置口令,但这是可选的。按 Enter 接受默认设置。密钥将以以下文件名保存在 ~/.ssh/ 目录中:
Public key: ~/.ssh/id_rsa.pub
Private key: ~/.ssh/id_rsa
验证 SSH 密钥文件
进入 .ssh 目录:
cd ~/.ssh
使用以下命令检查生成的密钥的权限和内容:
ls -l
此命令会显示文件的详细信息,确保它们已正确创建。
如何禁用 SSH 密码认证?
设置好 SSH 密钥认证后,您可以通过禁用基于密码的登录来进一步增强安全性。这样可以确保只有持有正确私钥的用户才能访问服务器。
重要提示:在继续之前,请确保您的公钥已正确安装在服务器上。否则,您可能会失去访问权限。
修改 SSH 配置以禁用密码登录
以具有 root 或 sudo 权限的用户身份打开 SSH 配置文件:
$ sudo nano /etc/ssh/sshd_config
1. 找到 PasswordAuthentication 这一行,删除行首的 #(如果有),并将其值改为 "no":
PasswordAuthentication no
2. 确保已启用公钥认证并禁用质询响应认证。文件中应包含以下设置:
PubkeyAuthentication yes
ChallengeResponseAuthentication no
保存并退出文件。
要使新设置生效,请使用以下命令重新加载 SSH 服务:
$ sudo systemctl reload ssh
这样,密码认证将被禁用,只能通过 SSH 密钥认证进行访问。
提升 SSH 连接安全性的最佳实践
为保护您的 SSH 连接,请遵循以下最佳实践:
1. 使用 SSH 密钥或强密码:SSH 密钥比密码更安全。如果使用密码,请确保它足够长、唯一且复杂,混合使用字母、数字和符号。
2. 禁用 root 登录:在 SSH 配置文件(/etc/ssh/sshd_config)中禁用 root 直接登录,以防止未经授权的访问,设置如下:
PermitRootLogin no
3. 更改默认 SSH 端口:将默认端口(22)修改为自定义端口,以降低自动化攻击的风险。更新 sshd_config 中的 "Port 22" 这一行,并重启 SSH 使更改生效。
4. 使用安全工具:安装 Fail2Ban 等工具来检测并封禁多次登录失败的尝试,防止暴力破解攻击:
$ sudo apt-get install fail2ban
实施这些措施将增强您的 SSH 安全性,防止未经授权的访问。
结论
掌握 SSH 是任何从事云计算工作的人的一项宝贵技能。通过本指南,您已经了解了如何使用 SSH 连接远程服务器。随着您深入探索其功能,您还会发现更多能够简化工作的高级能力。凭借强大的安全性、高效性和多功能性,SSH 已成为广泛应用于各种场景的工具。
使用 BlueVPS,即可在全球 20 个地点即时部署您的 KVM VPS!借助 KVM 虚拟化,享受流畅的远程访问、完全的控制权和 100% 独享资源。您可以选择基于 Linux 或 Windows 的 VPS,支持所有主流控制面板,并有 7x24 小时专家支持。立即开始,体验强大而可靠的托管服务!
blog