办公室里的个人电脑是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