Linux系统开启SSH服务器并进行配置是一个常见的需求,以下是详细步骤和相关概念:
SSH(Secure Shell) 是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。它主要用于远程登录和命令执行。
在大多数Linux发行版中,OpenSSH服务器通常已经预装。如果没有,可以使用包管理器进行安装。
Debian/Ubuntu:
sudo apt update
sudo apt install openssh-server
CentOS/RHEL:
sudo yum install openssh-server
安装完成后,启动SSH服务并设置为开机自启。
Systemd系统(如Ubuntu 16.04+,CentOS 7+):
sudo systemctl start sshd
sudo systemctl enable sshd
SysVinit系统(如CentOS 6):
sudo service sshd start
sudo chkconfig sshd on
编辑SSH配置文件 /etc/ssh/sshd_config
进行详细设置。
常用配置项:
Port
:更改默认的SSH端口(例如改为2222)。PermitRootLogin
:是否允许root用户登录(建议设置为no
)。PasswordAuthentication
:是否允许密码认证(建议设置为no
,改用密钥认证)。PubkeyAuthentication
:启用公钥认证。示例配置:
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
修改配置后,重启SSH服务使更改生效:
sudo systemctl restart sshd
确保防火墙允许新的SSH端口通过。
UFW(Uncomplicated Firewall):
sudo ufw allow 2222/tcp
sudo ufw reload
Firewalld:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
~/.ssh
目录和authorized_keys
文件的权限正确。~/.ssh
目录和authorized_keys
文件的权限正确。sshd_config
中启用了公钥认证。以下是一个简单的Python脚本示例,用于通过SSH连接到远程服务器并执行命令:
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
ssh.connect('your_server_ip', port=2222, username='your_username', key_filename='path_to_your_private_key')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())
# 关闭连接
ssh.close()
通过以上步骤和配置,你可以成功地在Linux系统上开启并配置SSH服务器。
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
领取专属 10元无门槛券
手把手带您无忧上云