跳到主要内容

开启 Linux/Fedora 远程 SSH 访问

·1 分钟

办公室里的个人电脑是 Win+Fedora 双系统,在家里偶尔会有访问 Fedora 的需要,内网穿透方案选择的是 Zerotier-One,远程连接使用 ssh。这里记录一下如何开启 Linux/Fedora 的远程 ssh 访问。

启动 SSH 服务并设置开机自启 #

# 启动服务
sudo systemctl start sshd   # 部分系统服务名为 ssh(如Ubuntu)
sudo systemctl start ssh    # 若上述失败,尝试此命令

# 设置开机自启
sudo systemctl enable sshd

配置防火墙 #

防火墙开放 ssh 服务端口 #

sudo firewall-cmd --permanent --add-service=ssh
# 因为下面会修改ssh的默认端口为2222,这里需要防火墙放开端口
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

设置 SELinux 自定义端口 #

CentOS 和 Fedora 的 SELinux 会拦截自定义 ssh 端口,需要添加自定义规则

sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo systemctl restart sshd

配置 SSH 参数 #

编辑配置文件 /etc/ssh/sshd_config

# 修改默认端口号,防止扫描端口
Port 2222

# 开启密钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# 禁止root用户登录
PermitRootLogin no
# 禁用密码登录
PasswordAuthentication no

保存后重启服务

sudo systemctl restart sshd

远程连接 #

生成密钥对 #

在需要登录 Fedora 的电脑上生成密钥对,如果以前生成过,可以忽略此步骤

ssh-keygen -t ed25519 -C "your_email@example.com"
  • 默认保存路径:~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。
  • 若使用 RSA,替换 ed25519rsa(推荐更安全的 Ed25519)。

上传公钥 #

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 username@fedora_ip
  • 输入密码后,公钥会自动追加到服务器的 ~/.ssh/authorized_keys

测试登陆 #

ssh -p 2222 username@fedora_ip