Eatta
Eatta
Published on 2025-03-07 / 16 Visits
0
0

Fedora/Linux开启远程SSH密钥登陆

办公室里的个人电脑是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,替换 ed25519​ 为 rsa​(推荐更安全的 Ed25519)。

上传公钥

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

测试登陆

ssh -p 2222 username@fedora_ip


Comment