我如何设置打开的 ssh 服务器,以便如果我从本地局域网 ssh'ng 我希望它通过端口 22 但如果我通过端口 12345 从外部访问它例如。
然后对于外部访问,我希望在 sshd_config 中有一些不同的(更严格的)规则
Eric Carvalho的答案适用于 15.04 之前的版本,但他们弃用了,然后从 Ubuntu SystemdForUpstartUsers 中删除了暴发户。
这些步骤已适用于 systemd。
复制SSH配置文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_external
复制systemd配置文件:
sudo cp /lib/systemd/system/ssh.service /lib/systemd/system/sshd-external.service
在新文件 ( /lib/systemd/system/sshd-external.service) 中更改行:
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
到:
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS -f /etc/ssh/sshd_config_external
和线:
Alias=sshd.service
到:
Alias=sshd-external.service
现在根据/etc/ssh/sshd_config_external您的需要进行定制(例如更改Port 22为Port 12345)
启用服务
sudo ln -s /lib/systemd/system/ssh-external.service /etc/systemd/system/sshd-external.service
如果你已经运行了上面的命令,那么sudo systemctl disable sshd-external.service在运行下一个命令之前运行
sudo systemctl enable sshd-external.service
sudo service sshd-external start
这已经在真实硬件上的 Ubuntu 16.04 和 virtualbox 中的虚拟机上进行了测试。
如果这不起作用,请告诉我。众所周知,我会打错字。
创建另一个 SSH 服务实例。
复制 SSH 配置文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_external
Run Code Online (Sandbox Code Playgroud)复制upstart配置文件:
sudo cp /etc/init/ssh.conf /etc/init/ssh-external.conf
Run Code Online (Sandbox Code Playgroud)
在新文件 ( ssh-external.conf) 中,更改以下行:
mkdir -p -m0755 /var/run/sshd
Run Code Online (Sandbox Code Playgroud)
到:
mkdir -p -m0755 /var/run/sshd-external
Run Code Online (Sandbox Code Playgroud)
并更改行:
exec /usr/sbin/sshd -D
Run Code Online (Sandbox Code Playgroud)
到:
exec /usr/sbin/sshd -D -f /etc/ssh/sshd_config_external
Run Code Online (Sandbox Code Playgroud)创建新贵的链接:
sudo ln -s /lib/init/upstart-job /etc/init.d/ssh-external
Run Code Online (Sandbox Code Playgroud)现在/etc/ssh/sshd_config_external根据您的需求进行定制(例如更改Port 22为Port 12345)并启动服务:
sudo service ssh-external start
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3686 次 |
| 最近记录: |