凌峰创科服务平台

如何SSH连接Linux服务器?

要通过SSH连接Linux服务器,首先需要理解SSH(Secure Shell)的基本概念和工作原理,SSH是一种加密的网络协议,用于在不安全的网络中为网络服务提供安全的远程登录管理,它通过加密所有传输的数据,确保通信过程的安全性,有效防止了密码泄露和数据篡改,以下是详细的步骤和注意事项,帮助您顺利完成SSH连接。

如何SSH连接Linux服务器?-图1
(图片来源网络,侵删)

SSH连接前的准备工作

在开始连接之前,需要确保以下条件已满足:

  1. 服务器端配置:目标Linux服务器已安装SSH服务(通常是OpenSSH),并处于运行状态,可以通过命令systemctl status sshd检查SSH服务的状态。
  2. 网络连通性:客户端计算机与服务器之间能够互相通信,可以通过ping命令测试网络是否可达。
  3. 登录凭证:拥有服务器的有效用户名和密码,或者SSH密钥对(更安全的方式)。

使用密码进行SSH连接

基本连接命令

在Linux或macOS终端中,使用以下命令格式连接服务器:

ssh username@server_ip

用户名为root,服务器IP为168.1.100,则命令为:

ssh root@192.168.1.100

首次连接时,系统会提示服务器的指纹信息,输入yes确认后,输入密码即可登录。

如何SSH连接Linux服务器?-图2
(图片来源网络,侵删)

指定端口号

如果SSH服务运行在非默认端口(如2222),需通过-p参数指定:

ssh -p 2222 username@server_ip

连接超时设置

如果网络不稳定,可以设置连接超时时间(单位为秒):

ssh -o ConnectTimeout=10 username@server_ip

使用SSH密钥对进行免密登录

密钥对认证比密码更安全,推荐在生产环境中使用,以下是生成密钥对并配置免密登录的步骤:

生成SSH密钥对

在客户端计算机上运行以下命令生成密钥对(默认使用RSA算法):

ssh-keygen -t rsa -b 4096

按提示设置密钥保存路径和密码(可选),完成后,会在~/.ssh/目录下生成id_rsa(私钥)和id_rsa.pub(公钥)。

将公钥上传到服务器

使用ssh-copy-id命令将公钥复制到服务器:

ssh-copy-id username@server_ip

或者手动将公钥内容追加到服务器的~/.ssh/authorized_keys文件中:

ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub

测试免密登录

完成后,再次尝试SSH连接,无需输入密码即可登录:

ssh username@server_ip

SSH连接优化与安全配置

修改默认SSH端口

编辑服务器的/etc/ssh/sshd_config文件,将Port 22修改为其他端口(如2222),并重启SSH服务:

sudo systemctl restart sshd

禁用密码登录

sshd_config中设置PasswordAuthentication no,强制使用密钥对认证:

PasswordAuthentication no

重启SSH服务后,仅密钥对认证生效。

限制登录用户

sshd_config中添加AllowUsersAllowGroups指令,仅允许特定用户或组登录:

AllowUsers user1 user2

常见问题及解决方法

连接超时或被拒绝

  • 原因:服务器SSH服务未启动、防火墙阻止或网络不通。
  • 解决
    • 检查SSH服务状态:systemctl status sshd
    • 检查防火墙规则(如iptables或ufw),允许SSH端口流量。
    • 确认服务器IP和端口是否正确。

“Permission denied (publickey,password)”错误

  • 原因:密钥未正确配置或权限设置错误。
  • 解决
    • 确认公钥已上传到服务器。
    • 检查~/.ssh目录及authorized_keys文件权限:chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

相关问答FAQs

问题1:如何查看SSH连接的历史记录?
解答:SSH连接历史记录通常保存在服务器的~/.bash_history~/.zsh_history文件中,可以通过以下命令查看最近的SSH登录记录:

last -n 10 | grep sshd

或直接查看日志文件:

sudo grep "Accepted publickey" /var/log/auth.log

问题2:如何在Windows系统中使用SSH连接Linux服务器?
解答:Windows系统可通过以下方式实现SSH连接:

  1. 使用OpenSSH客户端:Windows 10/11已内置OpenSSH,直接在命令提示符或PowerShell中运行ssh username@server_ip即可。
  2. 使用第三方工具:如PuTTY、Xshell等,下载安装后输入服务器IP、端口和用户名,选择SSH协议连接。
  3. WSL(Windows Subsystem for Linux):通过WSL安装Linux环境,使用其内置的SSH客户端。
分享:
扫描分享到社交APP
上一篇
下一篇