域名 | 2025-02-26
SSH(Secure Shell)是一种加密的网络传输协议,在远程连接服务器进行开发、管理等操作时广泛应用。它能有效保障数据在传输过程中的安全性,防止数据被窃取或篡改。接下来,为你详细介绍 SSH 连接远程服务器的教程。
1、安装 SSH 客户端:不同操作系统安装方式有所不同。Windows 系统默认没有自带功能强大的 SSH 客户端,你可以安装 Xshell 这类第三方软件来实现。macOS 系统本身就自带 SSH 客户端,可直接使用。多数 Linux 发行版也自带 SSH 客户端,通过在终端输入ssh -V命令,若能显示版本信息,则说明已安装可用。
2、安装 SSH 服务端:如果是 Linux 服务器,需要确保 SSH 服务端已安装并正常运行。检查是否有ssh进程在运行,可在终端输入ps -ef | grep ssh 。如果有sshd进程,说明 SSH 服务端已在运行;若没有,对于 Ubuntu 系统,可使用命令sudo apt-get install openssh-server来安装;对于 CentOS 系统,命令则是sudo yum install openssh-server 。安装完成后,同样可以使用ps -ef | grep ssh命令检查是否安装成功。
在完成上述准备工作后,就可以使用密码登录方式连接远程服务器了。其典型用法如下:
(1) 若本地机用户名和远程机用户名一致,且使用默认端口 22 连接,可直接在终端输入ssh host,其中host为远程服务器的 IP 地址或域名。
(2) 若用户名不一致,需输入ssh username@host ,username为远程服务器的用户名。
(3) 若要指定连接端口(非默认的 22 端口),命令则为ssh -p port user@host ,port为指定的端口号。
当你首次连接远程服务器时,系统会提示你确认服务器的真实性,并展示服务器的 ED25519 key 指纹信息。你需要输入yes,然后输入远程服务器的账号密码,即可完成连接。比如首次连接到 IP 为81.69.58.141的服务器,可能会出现如下提示:
The authenticity of host '81.69.58.141 (81.69.58.141)' can't be established.
ED25519 key fingerprint is SHA256:QW5nscbIadeqedp7ByOSUF+Z45rxWGYJvAs3TTmTb0M.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/(fingerprint))?
此时输入yes,再输入正确的账号密码,就能成功连接到远程服务器。
虽然密码登录方式可行,但每次登录都需要输入密码,较为繁琐。基于公钥的登录连接方式可以解决这个问题,实现免密码登录。
公钥登录的原理是:在本地机器上生成一对公钥和私钥,然后将公钥上传到远程服务器。此后每次登录时,远程主机会向用户发送一段随机字符串,用户用自己的私钥对这段随机字符串进行加密,再把加密后的字符串发送给远程主机。远程主机使用用户的公钥对收到的加密字符串进行解密,如果解密后的字符串和发送的随机字符串一致,就认为用户合法,允许登录。
下面以常用的 RSA 算法为例,介绍基于公钥登录连接的具体步骤:
1、在本地终端运行ssh-keygen -t rsa -b 4096命令生成密钥对。运行后,系统会提示你输入密钥保存路径,直接回车即可使用默认路径。接着会提示输入密钥密码,若不想设置密码,直接回车即可,再次确认密码时也直接回车。完成上述操作后,在~/.ssh/目录下会生成两个文件:id_rsa.pub(公钥文件)和id_rsa(私钥文件) 。
2、将本地生成的公钥文件id_rsa.pub的内容添加到远程服务器的~/.ssh/authorized_keys文件中。你可以使用ssh-copy-id命令来简化这个操作,比如将本地公钥添加到远程服务器username@host上,命令为ssh-copy-id username@host,然后输入远程服务器的密码,即可完成公钥的上传。完成上传后,你就可以直接使用ssh username@host命令连接远程服务器,无需再输入密码。
1、什么是 RSA 算法:RSA 算法是一种非对称加密算法,由罗纳德・李维斯特(Ronald Linn Rivest)、阿迪・萨莫尔(Adi Shamir)和伦纳德・阿德曼(Leonard Adleman)三人于 1977 年发明,用于公钥加密和数字签名,其安全性基于大数分解的难度。
2、SSH 协议的版本区别:SSH 协议有 SSH1 和 SSH2 两个主要版本,SSH2 在安全性、性能和功能上都优于 SSH1,修复了 SSH1 的一些安全漏洞,并且支持更多的加密算法和认证方式。
3、如何在 Windows 下使用命令行的 SSH 客户端:Windows 10 及以上版本可以开启 “适用于 Linux 的 Windows 子系统(WSL)”,在 WSL 环境中使用自带的 SSH 客户端,也可以安装 OpenSSH for Windows 来在命令行中使用 SSH。