15 Linux运维小白教程:网络配置与管理之使用ssh远程连接
在上一篇文章中,我们讨论了如何配置网络接口,确保我们的Linux系统在网络中有效地通信。如今,网络已成为日常管理系统的重要组成部分,而远程连接则是运维工作中不可或缺的工具。在本篇文章中,我们将重点学习如何使用ssh
(Secure Shell)协议通过网络远程连接到Linux服务器。ssh
是一个强大的工具,提供了安全的数据通信、远程命令执行和多种其他功能。
什么是SSH?
SSH
(Secure Shell)是一种用于安全远程登录和其他网络服务的协议。它通过加密技术确保数据在传输过程中安全,保护用户的身份和信息。因此,可以用ssh
安全地连接到远程计算机,进行各种管理任务。
安装SSH
在大多数Linux发行版中,ssh
客户端和服务器通常会预装。在这种情况下,可以直接使用。如果未安装,可以根据不同的包管理器进行安装。
在基于Debian的系统中(如Ubuntu)
sudo apt update
sudo apt install openssh-server
在基于Red Hat的系统中(如CentOS)
sudo yum install openssh-server
安装完成后,可以通过运行以下命令来启动ssh
服务并设置为开机自启:
# 启动SSH服务
sudo systemctl start sshd
# 设置SSH服务为开机自启
sudo systemctl enable sshd
连接到远程服务器
一旦SSH服务启动并运行,您可以从另一台计算机上通过SSH连接到该服务器。基本的SSH连接命令如下:
ssh username@hostname_or_ip
username
:远程计算机上的用户账号。hostname_or_ip
:远程计算机的主机名或IP地址。
示例
假设您的服务器IP地址是192.168.1.10
,并且您的用户名是admin
,可以使用以下命令连接:
ssh admin@192.168.1.10
系统将提示您输入该用户的密码。输入正确的密码后,您将成功连接到远程服务器。
使用SSH密钥进行安全连接
为了增加连接的安全性,您可以使用SSH
密钥对进行无密码登录。以下是设置SSH密钥对的步骤:
生成SSH密钥对
在本地计算机上,使用以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 2048
按照提示,您可以选择保存密钥的位置(默认是~/.ssh/id_rsa
)和为私钥设置密码(可选)。
将公钥复制到远程服务器
使用ssh-copy-id
命令将公钥推送到远程服务器:
ssh-copy-id username@hostname_or_ip
例如:
ssh-copy-id admin@192.168.1.10
输入密码后,公钥将被自动复制到远程服务器的~/.ssh/authorized_keys
文件中。
无密码SSH登录
完成上述步骤后,您可以无密码SSH连接到远程服务器:
ssh admin@192.168.1.10
SSH配置与管理
ssh
的配置文件通常位于/etc/ssh/sshd_config
中,它允许您控制SSH服务的行为。您可以通过编辑该文件来进行一些设置,如:
- 更改SSH端口(默认为22)
- 禁止root用户登录
- 设置最大连接尝试次数
- 允许或拒绝特定IP地址
例如,编辑配置文件:
sudo nano /etc/ssh/sshd_config
在文件中修改或添加以下行,例如更改默认的SSH端口:
Port 2222
完成后,保存文件并重启SSH服务:
sudo systemctl restart sshd
常用SSH命令总结
-
基本连接:
ssh username@hostname_or_ip
-
指定端口连接:
ssh -p port_number username@hostname_or_ip
-
无密码登录:
通过密钥对连接。
-
远程执行命令:
ssh username@hostname_or_ip 'command_to_run'
-
文件传输:
使用
scp
命令进行文件传输:scp local_file username@hostname_or_ip:/path/to/remote/directory
总结
通过以上内容,我们学习了如何使用ssh
协议远程连接Linux服务器。无论是在日常运维中,还是在进行故障排除时,ssh
都是一个非常有用的工具。配置ssh
以允许无密码登录和加强安全性,可以使管理工作更加高效和安全。接下来,我们将在下一篇文章中探讨软件包管理的内容,包括yum
和apt
的用法。