我在同一个路由器后面有两台电脑。我们叫他们A和B。
A可以以下列方式从SSH到B:ssh usr@<internal ip of computer>
B可以通过同样的方式从SSH到A,但是必须使用外部IP。我已经把我的路由器的端口22转发给了A计算机的IP,所以这一切对我来说都是有意义的。
但是,我也希望将端口26转发给计算机B,并通过使用外部IP将端口26转发给计算机B,但同时指定端口22或26,以便有效地选择要使用的计算机。
我尝试过通过A上的iptables输出和B的输入来允许端口26,但这似乎行不通。我还将端口26转发给了B的内部IP (通过路由器),就像我对A.
下面是我尝试使用外部IP和端口26从A到B进行SSH时得到的结果:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.版本:
A有12.04 Ubuntu,B是带有Raspbian的Raspberry Pi。
编辑:我忘了输入的东西:我确实尝试过切换SSH配置文件(我发现它是/etc/ssh/ssh_config),我取消了(删除了#)与Port的行,并将22更改为26。它仍然给了我拒绝连接的信息。(我重新启动了,但没有结果。)
发布于 2013-03-04 22:53:27
似乎您没有在第二台机器上的端口26上运行SSH。您可以将机器上的端口号更改为26。
要么编辑/etc/ssh/sshd_config &不要忘记重新启动SSH (service sshd restart),或者将其保留在22上,但是将路由器上的端口26转发到第二台机器上的端口22。另外,不要忘记更改第二台计算机上的任何防火墙设置,以允许连接通过。
发布于 2015-08-12 12:48:52
如果您在Linux系统上,并且希望连接到端口26上的SSH服务器,则可以使用以下命令。
ssh user@192.168.1.1 -p 26注意:
发布于 2013-03-04 23:11:30
我只使用端口22进行内部网ssh访问。
为了通过互联网进行访问,我使用了一个自定义(不寻常)端口。这样做的好处是,我减少了脚本子程序生成的负载,这些脚本子程序正在扫描端口22以获得“众所周知的用户名”。
外部sshd进程由xinetd控制,并与内部sshd进程并行运行。在下面的示例中,我使用端口12345:
您可以自由地将此更改为系统上任何可用的空闲端口号。也许一个更高的值也会使这个端口被“快速端口扫描”扫描的可能性更小一些。
xinetd配置是:
service ssh-external
{
socket_type = stream
wait = no
protocol = tcp
type = UNLISTED
user = root
server = /usr/sbin/sshd
server_args = -i -f /etc/ssh/external-sshd.config
port = 12345
log_on_failure += USERID
}文件/etc/ssh/external-ssdh.config可以是您通常的sshd配置的副本。确保配置了下列语句:
Port 12345
AddressFamily inet我还建议对因特网访问执行公钥身份验证和禁用密码验证:
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication nohttps://askubuntu.com/questions/264046
复制相似问题